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

MySQL 安裝後必調參數:DBA 面試最愛的效能調校清單

     編輯:MySQL 資料庫相關知識

MySQL 預設安裝必改的 10 關鍵參數:依負載與引擎精準調校

面試 DBA 最愛問:「裝好 MySQL 後該調什麼?」令人驚訝的是,許多生產環境仍跑預設值。實際上只有少數參數真正關鍵,調對它們能解決 80% 效能問題。

核心參數對照表

參數適用引擎建議值說明
key_buffer_sizeMyISAM可用記憶體 30-40%索引快取。MyISAM 資料靠 OS cache,須留記憶體給 OS。若 .MYI 只有 1GB,設 4GB 純浪費
innodb_buffer_pool_sizeInnoDB可用記憶體 70-80%InnoDB 極度依賴 buffer pool(含資料+索引)。預設值極小,不調效能如蝸牛。資料量小勿過度配置
innodb_additional_mem_pool_sizeInnoDB20MB+內部資料結構配置。現代 OS 記憶體充足影響不大
innodb_log_file_sizeInnoDB64-512MB大寫入負載關鍵。值越大效能越好,但會增加崩潰恢復時間
innodb_log_buffer_sizeInnoDB8-16MB寫入高峰或大交易需調大。每秒刷盤一次,無需超過 1 秒產生量
innodb_flush_log_at_trx_commitInnoDB2(平衡)預設 1(每提交刷盤)極慢。設 2:只刷 OS cache,每秒刷盤,最多丟 1 秒資料。設 0 最快但不安全
table_open_cache (table_cache)通用1024+(視表數與連線數)打開表開銷大。足夠緩存所有常用表。大連線數需調大,見過 100,000
thread_cache_size通用16+執行緒建立/銷毀開銷大。目標:平常運作無需新建執行緒。Threads_Created 持續增長需調大
query_cache_size通用32-512MB(視讀多寫少)讀多寫少且無應用層快取有用。過大維護成本高反而拖慢。啟用後觀察命中率
sort_buffer_size 等 session 變數通用**依負載調整,非越大越好**簡單查詢無需加大。64GB 記憶體也不代表要設大。錯誤設定會降低效能

調校黃金法則

  1. 先調全域變數(上表),依硬體與引擎決定
  2. 再分析負載調 session 變數,勿盲目加大
  3. 善用官方範本:my-small.cnf、my-medium.cnf、my-large.cnf、my-huge.cnf,比預設值好得多
  4. 持續監控:SHOW GLOBAL STATUS、SHOW ENGINE INNODB STATUS、慢查詢日誌

結語: 參數調校無銀彈,核心在於「理解負載、針對瓶頸、持續觀測」。

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