以下是CentOS LNMP中MySQL的優化技巧,涵蓋硬件、系統、配置及維護層面:
noatime
參數減少磁盤寫入。vm.swappiness=0-10
:減少內存交換。vm.dirty_background_ratio=5-10
:控制臟頁刷新頻率。innodb_buffer_pool_size
:設為物理內存的60%-80%(如32GB內存設24GB)。innodb_log_file_size
:1-2GB(建議不超過緩沖池25%)。innodb_flush_log_at_trx_commit
:從庫設為2(每秒刷盤),主庫建議1(強一致性)。max_connections
:根據并發量調整(500-1000),避免連接耗盡。join_buffer_size
和sort_buffer_size
為16MB,優化JOIN和排序操作。EXPLAIN
分析查詢計劃,避免SELECT *
,只查詢必要字段。JOIN
替代子查詢,小表驅動大表。INT
替代VARCHAR
存儲數字),大表可考慮分區。OPTIMIZE TABLE
整理索引碎片。slow_query_log=ON
),優化低效SQL。注意:優化前需備份數據,根據實際業務負載調整參數,優先在測試環境驗證效果。
參考來源: