首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 效能調優實戰:八大關鍵參數深度解析

     編輯:MySQL 資料庫相關知識

MySQL 核心配置參數優化指南

透過網路資料蒐集與實測,以下 8 個系統參數對 MySQL 效能影響最為關鍵。調整前請依據伺服器硬體(特別是記憶體大小)斟酌數值。

1. back_log (連接請求堆疊大小)

預設: 50  |  建議: 500

當主執行緒在極短時間內收到大量連接請求時生效。值代表暫停回應新請求前,堆疊中可容納的請求數。若觀察到大量 unauthenticated user 待連接進程,需調大此值。受作業系統 TCP/IP 監聽佇列限制,設定過高無效。

2. interactive_timeout (互動式連接超時)

預設: 28800 秒 (8 小時)  |  建議: 7200 秒 (2 小時)

服務器在關閉交互式連接前等待活動的秒數。縮短可釋放閒置連接資源。

3. key_buffer_size (索引緩衝區大小)

預設: 8MB  |  建議: 實體記憶體的 25%-30% (如 2GB 記憶體設 400MB)

索引塊緩衝區,所有執行緒共享。增加可加速索引讀寫,但過大導致系統換頁反而變慢。

4. max_connections (最大連接數)

預設: 100  |  建議: 1024

允許的同時客戶端連接數。過小易導致 Too many connections 錯誤。增加此值會增加檔案描述符需求。

5. record_buffer (順序掃描緩衝區)

預設: 128KB  |  建議: 16MB

每個進行順序掃描的執行緒分配。大量掃描場景下調大有益。

6. sort_buffer (排序緩衝區)

預設: 2MB  |  建議: 16MB

每個需排序的執行緒分配。加速 ORDER BY、GROUP BY 操作。

7. table_cache (資料表快取數)

預設: 64  |  建議: 512

所有執行緒可開啟的資料表數量。MySQL 每張表需 2 個檔案描述符。

8. thread_cache_size (執行緒快取)

預設: 0  |  建議: 80

可重用的執行緒數量。新連接優先從快取取得,斷開時歸還。對比 Connections 和 Threads_created 狀態變數可評估效果。

9. wait_timeout (非互動連接超時)

預設: 28800 秒  |  建議: 7200 秒

服務器關閉非互動連接前的等待秒數。

操作方式: 修改 /etc/my.cnf (Windows 為 my.ini) 後重啟 MySQL 生效。調優屬謹慎工作,請依實際硬體微調。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved