innodb_buffer_pool_sizes的作用是什么
innodb_buffer_pool_size
是 MySQL 中 InnoDB 存储引擎的一个重要参数,它定义了 InnoDB 缓冲池的大小。缓冲池是一个内存区域,用于缓存数据库中的数据和索引,以加快数据库的读取操作。
以下是 innodb_buffer_pool_size
的作用:
提高读取性能:将常用的数据和索引加载到内存缓冲池中,可以减少磁盘 I/O 操作,从而提高读取性能。因为内存的读取速度远远快于磁盘的读取速度。
减少磁盘访问:通过增大缓冲池的大小,可以将更多的数据和索引存放在内存中,减少对磁盘的访问次数,从而降低磁盘 I/O 的负载。
提高查询性能:由于数据和索引在缓冲池中的存在,查询操作可以更快速地在内存中完成,而不需要频繁地读取磁盘上的数据。
改善并发性能:缓冲池的存在可以减少对磁盘的并发访问,提高并发读取的性能,从而改善数据库的并发处理能力。
需要注意的是,设置合适的 innodb_buffer_pool_size
大小需要考虑到服务器的可用内存和数据库的工作负载。如果设置过小,可能导致频繁的磁盘 I/O,降低性能;如果设置过大,可能会占用过多的内存资源,导致其他应用程序受影响。因此,需要根据实际情况进行调整和优化。
通过sql修改,重启后会失效
修改缓冲池大小为4G
SET GLOBAL innodb_buffer_pool_size = 4294967296;
查询修改是否生效
use mysql; select @@innodb_buffer_pool_size;
出现下图表示修改成功,
或者进入mysql的容器查看实时日志也会展示修改mysql的innodb_buffer_pool_size信息
通过my.cnf配置修改,永久生效
进入mysql容器,vi /etc/my.cnf,把下面的innodb_buffer_pool_size =128M改为想要修改的配置即可,支持字节,M,G的格式,
如2G,536870912(字节),512M(M)
修改后要重启mysql容器生效。