透過網路資料蒐集與實測,以下 8 個系統參數對 MySQL 效能影響最為關鍵。調整前請依據伺服器硬體(特別是記憶體大小)斟酌數值。
預設: 50 | 建議: 500
當主執行緒在極短時間內收到大量連接請求時生效。值代表暫停回應新請求前,堆疊中可容納的請求數。若觀察到大量 unauthenticated user 待連接進程,需調大此值。受作業系統 TCP/IP 監聽佇列限制,設定過高無效。
預設: 28800 秒 (8 小時) | 建議: 7200 秒 (2 小時)
服務器在關閉交互式連接前等待活動的秒數。縮短可釋放閒置連接資源。
預設: 8MB | 建議: 實體記憶體的 25%-30% (如 2GB 記憶體設 400MB)
索引塊緩衝區,所有執行緒共享。增加可加速索引讀寫,但過大導致系統換頁反而變慢。
預設: 100 | 建議: 1024
允許的同時客戶端連接數。過小易導致 Too many connections 錯誤。增加此值會增加檔案描述符需求。
預設: 128KB | 建議: 16MB
每個進行順序掃描的執行緒分配。大量掃描場景下調大有益。
預設: 2MB | 建議: 16MB
每個需排序的執行緒分配。加速 ORDER BY、GROUP BY 操作。
預設: 64 | 建議: 512
所有執行緒可開啟的資料表數量。MySQL 每張表需 2 個檔案描述符。
預設: 0 | 建議: 80
可重用的執行緒數量。新連接優先從快取取得,斷開時歸還。對比 Connections 和 Threads_created 狀態變數可評估效果。
預設: 28800 秒 | 建議: 7200 秒
服務器關閉非互動連接前的等待秒數。
操作方式: 修改 /etc/my.cnf (Windows 為 my.ini) 後重啟 MySQL 生效。調優屬謹慎工作,請依實際硬體微調。