# 缓冲池大小,建议为可用内存的50-70%
innodb_buffer_pool_size = 4G
# 日志缓冲区大小
innodb_log_buffer_size = 16M
# 查询缓存(MySQL 8.0已移除)
# query_cache_size = 0
# 排序缓冲区
sort_buffer_size = 2M
join_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 2M
# 最大连接数
max_connections = 200
# 线程缓存
thread_cache_size = 20
# 连接超时
wait_timeout = 300
interactive_timeout = 300
# 日志文件大小
innodb_log_file_size = 256M
innodb_log_files_in_group = 2
# 刷新方式
innodb_flush_method = O_DIRECT
innodb_flush_log_at_trx_commit = 1 # 1为最安全,2为性能折中
# IO线程数
innodb_read_io_threads = 8
innodb_write_io_threads = 8
# 并发控制
innodb_thread_concurrency = 0
innodb_io_capacity = 200
innodb_io_capacity_max = 2000
EXPLAIN
分析查询执行计划SELECT *
,只查询需要的列LIMIT
限制结果集大小OPTIMIZE TABLE
或ALTER TABLE ... ENGINE=InnoDB
SHOW STATUS
和SHOW VARIABLES
SHOW ENGINE INNODB STATUS
mysqldumpslow
分析慢查询日志pt-query-digest
(Percona工具)# 分析表
ANALYZE TABLE table_name;
# 检查表
CHECK TABLE table_name;
# 优化表
OPTIMIZE TABLE table_name;
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 2
log_queries_not_using_indexes = 1
pm.max_children
与MySQL的max_connections
匹配pconnect
)通过以上调优措施,可以显著提升LNMP环境中MySQL的性能表现。