此文章主要向大家介紹的是MySQL性能優化的參數我前兩天在相關網站看見MySQL性能優化的參數的資料覺得挺好就拿出來供大家分享希望你掌握了這項技術會在以後的學習或是工作中帶來很大的幫助
)back_log
要求 MySQL 能有的連接數量當主要MySQL線程在一個很短時間內得到非常多的連接請求這就起作用然後主線程花些時間(盡管很短)檢查連接並且啟動一個新線程
back_log值指出在MySQL暫時停止回答新請求之前的短時間內多少個請求可以被存在堆棧中只有如果期望在一個短時間內有很多連接你需要增加它換句話說這值對到來的TCP/IP連接的偵聽隊列的大小你的操作系統在這個隊列大小上有它自己的限制試圖設定back_log高於你的操作系統的限制將是無效的
當你觀察你的主機進程列表發現大量 | unauthenticated user | xxxxxxxxxxxx | NULL | Connect | NULL | login | NULL 的待連接進程時就要加大 back_log 的值了默認數值是我把它改為
()interactive_timeout
服務器在關閉它前在一個交互連接上等待行動的秒數一個交互的客戶被定義為對 MySQL_real_connect()使用 CLIENT_INTERACTIVE 選項的客戶 默認數值是我把它改為
()key_buffer_size
索引塊是緩沖的並且被所有的線程共享key_buffer_size是用於索引塊的緩沖區大小增加它可得到更好處理的索引(對所有讀和多重寫)到你能負擔得起那樣多如果你使它太大系統將開始換頁並且真的變慢了默認數值是(M)我的MySQL主機有GB內存所以我把它改為(MB)
()max_connections
允許的同時客戶的數量增加該值增加 MySQLd 要求的文件描述符的數量這個數字應該增加否則你將經常看到 Too many connections 錯誤 默認數值是我把它改為
()record_buffer
每個進行一個順序掃描的線程為其掃描的每張表分配這個大小的一個緩沖區如果你做很多順序掃描你可能想要增加該值默認數值是(K)我把它改為 (M)
()sort_buffer
每個需要進行排序的線程分配該大小的一個緩沖區增加這值加速ORDER BY或GROUP BY操作默認數值是(M)我把它改為 (M)
()table_cache
為所有線程打開表的數量增加該值能增加MySQL要求的文件描述符的數量MySQL對每個唯一打開的表需要個文件描述符默認數值是我把它改為
()thread_cache_size
可以復用的保存在中的線程的數量如果有新的線程從緩存中取得當斷開連接的時候如果有空間客戶的線置在緩存中如果有很多新的線程為了提高性能可以這個變量值通過比較 Connections 和 Threads_created 狀態的變量可以看到這個變量的作用我把它設置為
From:http://tw.wingwit.com/Article/program/MySQL/201311/29420.html