以下是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。注意:优化前需备份数据,根据实际业务负载调整参数,优先在测试环境验证效果。
参考来源: