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

MySQL 預設安裝後效能調優:五大核心參數必改指南

     編輯:MySQL 資料庫相關知識

面試必問:預設安裝後該調什麼?

驚人發現:許多 DBA 無法給出合理答案,大量伺服器仍跑在預設配置。雖可調參數眾多,但典型負載下僅少數關鍵,設對這些,其他微調效果有限。

核心參數深度解析

1. key_buffer_size — MyISAM 關鍵

僅對 MyISAM 生效。純 MyISAM 環境可設為可用記憶體 30-40%。需留記憶體給 OS 快取資料(資料量常大於索引)。避免浪費:.MYI 只有 1GB 卻設 4GB 缓存。極少用 MyISAM 時保留 16-32MB 供臨時表索引。

2. innodb_buffer_pool_size — InnoDB 生命線

InnoDB 對緩衝極敏感。MyISAM 在預設 key_buffer_size 尚可運行,InnoDB 預設池大小卻如蝸牛。InnoDB 同時快取資料與索引,無需留太多給 OS。純 InnoDB 可設 70-80% 可用記憶體。資料量小且不暴增時無需過大。

3. innodb_additional_pool_size

對效能影響較小(足夠記憶體的 OS 上)。可設 20MB+,視 InnoDB 內部分配需求而定。

4. innodb_log_file_size — 高寫入負載關鍵

值越大效能越好,但會增加恢復時間。常設 64-512MB,視伺服器規模。

5. innodb_log_buffer_size

預設值應付中等寫入與短事務尚可。寫入尖峰或高負載需增大。設太大浪費記憶體(每秒刷新一次),無需超過 1 秒所需空間。通常 8-16MB 足夠。

6. innodb_flush_log_at_trx_commit — 效能與安全權衡

預設 1:每次提交刷盤,極耗資源(無電池備援快取時)。多數應用(特別從 MyISAM 遷移)設 2 即可:僅刷至 OS 快取,每秒刷盤,極少丟失 1-2 秒更新。設 0 最快但最不安全(崩潰丟失事務)。

7. table_cache — 減少開表開銷

開表開銷大(MyISAM 標記 .MYI 正在使用)。加大快取數量,盡量緩存打開的表。200+ 表建議 1024,連接數大再增大。見過 100,000 設定。

8. thread_cache — 降低執行緒創建銷毀開銷

至少設 16。大量突發併發連接且 Threads_Created 大時再增大。目標:正常操作無需創建新執行緒。

9. query_cache — 讀密集無應用層快取時有用

勿設過大(維護開銷大導致變慢)。通常 32-512MB。觀察命中率,低則停用。

會話變量與配置範本

全域變量依硬體與引擎設定;會話變量依負載設定(如簡單查詢無需加大 sort_buffer_size 即使有 64GB 記憶體,反而可能降低效能)。官方發布包含多種 my.cnf 範本,作為配置模板遠優於預設值。

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