首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 五大核心參數調優指南:連接、查詢緩存、臨時表、會話內存、慢查詢日誌

     編輯:MySQL 綜合教學

一、連接相關

參數說明調優建議
max_connections最大連接數,每連接消耗會話內存按峰值並發 + 余量設置,避免過大導致 OOM
max_allowed_packet最大數據包,影響大結果集傳輸、mysqldump大字段/遠程備份場景調大(如 64M-256M)
aborted_connects連接失敗計數器持續增長說明客戶端連接異常,需排查
thread_cache_size線程緩存,減少創建/銷毀開銷200-500 之間,觀察 Threads_created 增長調整

二、查詢緩存

參數說明
query_cache_type0=關,1=開,2=按需(推薦)
query_cache_size總緩存內存,0 表關閉
query_cache_limit單查詢結果超過此值不緩存
query_cache_min_res_unit緩存塊最小單元,按平均大小調整減碎片

監控公式:
命中率 = Qcache_hits / (Qcache_hits + Com_select)
平均塊大小 = (query_cache_size - Qcache_free_memory) / Qcache_queries_in_cache

三、臨時表

  • tmp_table_size、max_heap_table_size:內存臨時表上限,取兩者較小值
  • 超限轉磁盤 MyISAM 表,性能驟降
  • 優先優化 SQL 減少臨時表,而非單純調大參數
  • 含 BLOB/TEXT 列的表直接建磁盤表,參數無效

四、會話內存(每連接獨享)

參數用途建議值
read_buffer_size全表掃描順序讀緩衝128K-256K
sort_buffer_size排序緩衝1M-2M,會話級按需調大
join_buffer_size無索引 JOIN 緩衝1M-2M,會話級按需調大
read_rnd_buffer_size隨機讀/排序緩衝1M,會話級按需調大

實測法:啟動所有連接,觀察 top -p mysqld_pid 的 VIRT 列穩定值,減去靜態內存,除以連接數得人均會話內存。

五、慢查詢日誌

參數說明
slow_query_logON 開啟,指定文件路徑
long_query_time閾值,預設 10s,建議 1s 或更低(微秒級需 5.1.21+)
log_queries_not_using_indexesON 記錄無索引查詢(全表掃描)

善用 mysqldumpslow 分析日誌,定期清理舊日誌釋放磁盤。

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