| 參數 | 建議 |
|---|---|
| max_connections | 依應用峰值連線數設定,預設 151 過小 |
| max_allowed_packet | 大於最大單行資料,含 BLOB/TEXT 時調大(如 64M) |
| thread_cache_size | 觀察 Threads_created 增長,設 50-200 減少執行緒建立開銷 |
| aborted_connects | 狀態值,持續增長表示連線錯誤需排查 |
| 參數 | 說明 |
|---|---|
| query_cache_size | 總快取大小,0 關閉 |
| query_cache_limit | 單查詢結果上限,預設 1M |
| query_cache_min_res_unit | 分配最小單位,預設 4K,碎片高時調小 |
| query_cache_type | 0=關閉, 1=開啟, 2=DEMAND 模式 |
命中率公式:Qcache_hits / (Qcache_hits + Com_select)
平均快取大小:(query_cache_size - Qcache_free_memory) / Qcache_queries_in_cache
| 參數 | 說明 |
|---|---|
| tmp_table_size | 記憶體臨時表上限,超過轉磁碟 MyISAM |
| max_heap_table_size | MEMORY 表上限,實際臨時表上限取兩者較小值 |
| 參數 | 用途 | 建議基礎值 |
|---|---|---|
| read_buffer_size | 循序掃描快取 | 128K-256K |
| sort_buffer_size | 排序快取 | 1M-2M,會話層視查詢調大 |
| join_buffer_size | 關聯查詢快取(無索引時) | 1M-2M,會話層視查詢調大 |
| read_rnd_buffer_size | 隨機讀取/排序快取 | 1M,會話層調大 |
估算總記憶體:Global buffers + (Per-thread buffers × max_connections)。實測 top -p mysqld_pid 觀察 VIRT/RES。
| 參數 | 建議 |
|---|---|
| slow_query_log | ON |
| slow_query_log_file | /var/log/mysql/slow.log |
| long_query_time | 1(秒),5.7+ 支援毫秒/微秒 |
| log_queries_not_using_indexes | ON(記錄全表掃描) |
分析工具:mysqldumpslow、pt-query-digest。
五大類參數平時少動,效能調優、故障診斷時關鍵。建議建立基線配置,變更單一參數觀察效果,避免同時多參數調整導致難以定位。