MySQL服务端innodb_buffer_pool_size配置参数

innodb_buffer_pool_size是什么?

innodb_buffer_pool是 InnoDB 缓冲池,是一个内存区域保存缓存的 InnoDB 数据为表、索引和其他辅助缓冲区。innodb_buffer_pool_size 是这个缓冲池的大小,默认128M(即134217728 bytes)。

innodb_buffer_pool_size有什么用?

如果不设置innodb_buffer_pool_size,在生产环境的sql执行效率将大大下降,原因是缓存的空间变小,能缓存的数据量有限,缓存的命中率大打折扣,会导致反复去磁盘上读数据,众所周知磁盘的速度远远低于内存的执行效率。

innodb_buffer_pool_size的值配置有什么要求?

innodb_buffer_pool_size的值必须是(innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances)的整数倍,即可以相等或更大。

sql 复制代码
-- 显示当前使用的innodb缓冲池大小 及 缓冲池实例数与主干大小
SELECT @@innodb_buffer_pool_size as pool_size,
@@innodb_buffer_pool_instances as pool_instances,
@@innodb_buffer_pool_chunk_size as chunk_size;

innodb_buffer_pool_size设置方式

两种设置方式,区别在于MySQL的运行状态,静态设置需要重启MySQL,动态设置在MySQL运行期动态调整。

静态设置

  • 修改my.cnf,在[mysqld]作用域添加innodb_buffer_pool_size=计算值
  • 重启mysql。

动态设置

  • 执行SET GLOBAL innodb_buffer_pool_size=计算值; 设置缓冲池大小。
  • 执行SHOW STATUS WHERE Variable_name='InnoDB_buffer_pool_resize_status'; 查询缓冲池大小改变状态,出现 Completed resizing buffer pool at 时间戳 即完成。
  • 执行SELECT @@innodb_buffer_pool_size; 查询当前缓冲池大小。
相关推荐
DevOpenClub1 分钟前
全国三甲医院主体信息 API 接口
java·大数据·数据库
一勺菠萝丶10 分钟前
管理后台使用手册在线预览与首次登录引导弹窗实现
java·前端·数据库
无忧智库14 分钟前
某大型银行“十五五”金融大模型风控与智能投顾平台建设方案深度解读(WORD)
数据库·金融
爱码小白15 分钟前
数据库多表命名的通用规范
数据库·python·mysql
huohuopro30 分钟前
Hbase伪分布式远程访问配置
数据库·分布式·hbase
XDHCOM43 分钟前
ORA-12169: TNS连接标识符过长,Oracle报错故障修复与远程处理
数据库·oracle
爬山算法1 小时前
MongoDB(86)如何使用MongoDB存储大文件?
数据库·mongodb
xcLeigh1 小时前
KES数据库表空间目录自动创建特性详解与存储运维最佳实践
大数据·运维·服务器·数据库·表空间·存储
小陈工1 小时前
2026年4月8日技术资讯洞察:边缘AI推理框架竞争白热化,Python后端开发者的机遇与挑战
开发语言·数据库·人工智能·python·微服务·回归
wb1891 小时前
NoSQL数据库Redis集群重习
数据库·redis·笔记·云计算·nosql