vm.swappiness=0,Swap 讀寫延遲是記憶體 10 萬倍noop 或 deadline (SSD/NVMe);避開 cfq/anticipatorynoatime,nodiratime 關閉訪問時間更新echo never > /sys/kernel/mm/transparent_hugepage/enabled,避免記憶體碎片、延遲抖動ulimit -n 655350: 足夠文件描述符innodb_buffer_pool_size = 70% 物理記憶體 (專用機)innodb_log_file_size = 1~4GB: 減少 Checkpoint 壓力、加快崩潰恢復innodb_flush_method = O_DIRECT: 避免雙緩衝 (需 XFS/EXT4,避開 EXT3)innodb_buffer_pool_instances = 8 (大於 1GB 時),減少鎖競爭innodb_read_io_threads = 16, innodb_write_io_threads = 16 (NVMe 可調大)innodb_io_capacity = 20000 (NVMe)、innodb_io_capacity_max = 40000max_connections = 1000~5000: 依業務評估,過大耗盡記憶體thread_cache_size = 100~200: 減少線程創建開銷table_open_cache = 4000~10000: 避免頻繁開關表skip-name-resolve: 禁用 DNS 反解tmp_table_size = max_heap_table_size = 64M~256M: 減少臨時表落磁碟sort_buffer_size = 2M~4M (會話級):**勿設過大**,併發時記憶體爆炸join_buffer_size = 2M~8M (會話級):**同上**read_rnd_buffer_size = 2M~4M: 排序後隨機讀優化key_buffer_size (MyISAM):**僅用於系統表/舊表**,按 Key_reads/Key_read_requests < 0.01 調整innodb_flush_log_at_trx_commit = 1 (安全) / 2 (高寫入犧牲 1 秒) / 0 (極致速度)sync_binlog = 1 (安全) / 100~1000 (高寫入)binlog_format = ROW: 複制最安全、支援非確定性函數gtid_mode = ON, enforce_gtid_consistency = ON: 5.6+ 現代複制基石slave_parallel_workers = 4~16, slave_parallel_type = LOGICAL_CLOCK (5.7+): 並行複制消除延遲master_info_repository = TABLE, relay_log_info_repository = TABLE: 避免文件損壞log_slave_updates = 1: 鏈式複制/雙主必開expire_logs_days = 7~14: 防止 Binlog 撐爆磁碟slow_query_log = 1, long_query_time = 1: 全量慢查詢審計log_queries_not_using_indexes = 1: 發現全掃描隱患sql_mode = STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZEROOPTIMIZE TABLE / ANALYZE TABLEpt-online-schema-change / gh-ostCOUNT(*) 無條件全掃GROUP BY 優於 DISTINCT (視版本)USE INDEXSQL_MODE=STRICT 暴露數據質量問題UNION 替代 ORINSERT ... ON DUPLICATE KEY UPDATE 替代 SELECT+UPDATEMAX() 無索引 → 索引列 ORDER BY DESC LIMIT 1ORDER BY RAND()LIMIT M,N 深分頁 → 延遲關聯/游標/ID 游標LOCK IN SHARE MODE 減少排他鎖SELECT * FROM t WHERE pk > 0 LIMIT 1 等觸發 Buffer Pool 載入TRUNCATE 而非 DELETESELECT 只取需要列,拒絕 *SHOW PROCESSLIST / Performance Schema 實時診斷STOP SLAVE 保證一致性--single-transaction --master-data=2 --routines --triggers --eventsSET FOREIGN_KEY_CHECKS=0; SET UNIQUE_CHECKS=0;這 100+ 條鐵律涵蓋了 MySQL 生命週期的全鏈路。調優無銀彈,只有「監控發現 → 根因定位 → 針對性調整 → 效果驗證 → 固化標準」的工程化閉環。建議團隊將核心 30 條製成「上線檢查清單」,其餘納入「架構評審/事故複盤/季度體檢」機制,讓最佳實踐內化為肌肉記憶。