内存相关参数
innodb_buffer_pool_size
:设置为服务器物理内存的50%-80%(如16GB内存设为8G-12G),用于缓存数据和索引,显著提升查询速度。innodb_log_file_size
:增大至256M-512M,减少日志切换频率,提升大事务处理能力。max_connections
:根据并发需求调整(建议不超过CPU核心数×2),避免连接过多导致资源耗尽。性能关键参数
innodb_flush_log_at_trx_commit
:设为2(牺牲部分持久性换取性能),仅适用于非金融级场景。query_cache_size
:开启并设置为64M-128M(仅适用于低并发场景,高并发建议关闭)。索引策略
SHOW INDEX FROM table
检查索引使用情况,删除冗余索引。查询语句优化
SELECT *
,只查询必要字段。EXPLAIN
分析查询计划,定位慢查询瓶颈(如未走索引、临时表使用过多等)。JOIN
替代子查询,减少查询层级。硬件升级
系统配置
vm.swappiness=1
减少交换空间使用)。taskset
命令),减少上下文切换。定期维护
OPTIMIZE TABLE
整理表碎片,尤其针对频繁更新的表。slow_query_log
),分析并优化高频慢查询。监控工具
top/htop
监控CPU和内存使用情况,iostat
监控磁盘I/O。thread_handling=pool-of-threads
),提升高并发场景下的连接处理效率。注意事项:修改配置后需重启MariaDB服务(sudo systemctl restart mariadb
),生产环境建议先在测试环境验证调优效果。
参考来源: