首页/数据/数据库速查/InnoDB Buffer Pool 大小设置(innodb_buffer_pool_size)
本包目录(495 条)
MySQL 基础与连接36 条SQL 语法52 条用户与权限21 条备份与恢复56 条主从复制与高可用53 条
性能与调优57 条
Redis 命令96 条Redis 运维与场景124 条

InnoDB Buffer Pool 大小设置(innodb_buffer_pool_size)

InnoDB 最值钱的内存开关:缓存数据页与索引页,命中则免磁盘 IO;专用库一般取物理内存 50%-75%,在线可调但以小步调大为主。

数据库速查数据更新于 2026-10-12
用途设置 InnoDB 缓冲池大小
语法innodb_buffer_pool_size(字节,支持 K/M/G 后缀)
建议专用库 50%-75% 物理内存;与 OS、连接内存合算总量

查看与调整

查看与调整
SELECT @@innodb_buffer_pool_size/1024/1024/1024 AS gb;
SET GLOBAL innodb_buffer_pool_size = 8589934592;  -- 在线改为 8G
-- 配置文件(持久):
-- innodb_buffer_pool_size = 8G

分块信息

分块信息
SELECT @@innodb_buffer_pool_instances, @@innodb_buffer_pool_chunk_size;
SHOW STATUS LIKE 'Innodb_buffer_pool_pages%';
在线调整按 chunk 粒度对齐(chunk_size x instances),设置值会被向上取整;调小需要重整缓冲池,业务高峰别做。

易错点

  • 把 90% 内存给 Buffer Pool:连接内存(sort/join buffer)与 OS page cache 一起把机器撑爆
  • 只在配置文件改而没重启也没 SET GLOBAL,然后疑惑为什么没生效

数据来源与参考

  • MySQL 8.0 Reference Manual: InnoDB Buffer Pool Configuration

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌