linux

Linux MySQL内存配置怎样优化

小樊
37
2025-11-26 09:28:31
栏目: 云计算

Linux 上 MySQL 内存配置优化实操指南

一 核心原则与快速估算

二 关键参数建议与适用场景

参数 作用 建议范围 说明
innodb_buffer_pool_size InnoDB 数据与索引缓存 物理内存的50%–75%(专用机可至70%–80% 命中率长期低于**95%**可适当上调
innodb_log_file_size 重做日志文件大小 128M–512M 大事务/高写入可适当增大
innodb_log_buffer_size 事务日志缓冲 8M–64M 大批量写入/无主键批量导入可上调
innodb_flush_log_at_trx_commit 日志刷盘策略 1(强一致)/ 2(高吞吐) 0/2 吞吐更高但崩溃可能丢1秒数据
key_buffer_size MyISAM 索引缓存 如仍用 MyISAM:8M–512M 全 InnoDB 场景可保持较小
query_cache_size / query_cache_type 结果缓存 5.7 及以下:按需小值或关闭;8.0:不可用 高并发写场景命中率通常较差
tmp_table_size / max_heap_table_size 内存临时表上限 两者取小,建议64M–256M 关注磁盘临时表比例,不宜过大
sort_buffer_size / join_buffer_size / read_buffer_size / read_rnd_buffer_size 会话级操作缓冲 小步上调(如 8M/64M/2M/2M 起) 仅在确有排序/连接/扫描瓶颈时调大
max_connections 最大并发连接 结合连接池与业务评估 过高会放大线程独享内存
thread_cache_size 线程复用 建议50–200 降低频繁建连开销
table_open_cache / table_definition_cache 表句柄/元数据缓存 依库表规模设置 减少打开表文件与元数据开销
binlog_cache_size / max_binlog_cache_size 事务级 binlog 缓冲 2M–16M / 适当上限 大事务需关注是否超限报错
performance_schema_max_table_instances / table_definition_cache PS/表定义缓存 适度限制 降低监控与元数据内存占用
以上建议需结合实际负载与监控逐步微调,避免一次性大幅改动。

三 诊断与监控步骤

四 示例配置与动态调整

五 系统与稳定性设置

0
看了该问题的人还看了