相关推荐recommended
mysql 内存缓冲池innodb
作者:mmseoamin日期:2024-04-27

innodb_buffer_pool_sizes的作用是什么

innodb_buffer_pool_size 是 MySQL 中 InnoDB 存储引擎的一个重要参数,它定义了 InnoDB 缓冲池的大小。缓冲池是一个内存区域,用于缓存数据库中的数据和索引,以加快数据库的读取操作。

以下是 innodb_buffer_pool_size 的作用:

  1. 提高读取性能:将常用的数据和索引加载到内存缓冲池中,可以减少磁盘 I/O 操作,从而提高读取性能。因为内存的读取速度远远快于磁盘的读取速度。

  2. 减少磁盘访问:通过增大缓冲池的大小,可以将更多的数据和索引存放在内存中,减少对磁盘的访问次数,从而降低磁盘 I/O 的负载。

  3. 提高查询性能:由于数据和索引在缓冲池中的存在,查询操作可以更快速地在内存中完成,而不需要频繁地读取磁盘上的数据。

  4. 改善并发性能:缓冲池的存在可以减少对磁盘的并发访问,提高并发读取的性能,从而改善数据库的并发处理能力。

需要注意的是,设置合适的 innodb_buffer_pool_size 大小需要考虑到服务器的可用内存和数据库的工作负载。如果设置过小,可能导致频繁的磁盘 I/O,降低性能;如果设置过大,可能会占用过多的内存资源,导致其他应用程序受影响。因此,需要根据实际情况进行调整和优化。

通过sql修改,重启后会失效

修改缓冲池大小为4G

SET GLOBAL innodb_buffer_pool_size = 4294967296;

查询修改是否生效

use mysql;
select @@innodb_buffer_pool_size;

出现下图表示修改成功,

mysql 内存缓冲池innodb,在这里插入图片描述,第1张

或者进入mysql的容器查看实时日志也会展示修改mysql的innodb_buffer_pool_size信息

mysql 内存缓冲池innodb,在这里插入图片描述,第2张

通过my.cnf配置修改,永久生效

进入mysql容器,vi /etc/my.cnf,把下面的innodb_buffer_pool_size =128M改为想要修改的配置即可,支持字节,M,G的格式,

如2G,536870912(字节),512M(M)

mysql 内存缓冲池innodb,在这里插入图片描述,第3张

修改后要重启mysql容器生效。