MySQL入门--内存buffer pool

来源:这里教程网 时间:2026-03-01 12:03:33 作者:

内存 buffer pool

MySQL 在启动时默认被分配给 512MB RAM ;其中 InnoDB buffer pool 用于缓存表数据、索引及其他的一些辅助缓冲池,为了高效的大量读, buffer pool 划分 pages ;为了高效进行缓存管理, buffer pool 应用多种 LRU least recently used )算法,将相邻的 page 串成链,管理冷热数据。

1)          配置 InnoDB Buffer Pool Size

innodb_buffer_pool_size 为控制 buffer pool 大小的参数,通常推荐系统内存的 50~70% 。默认值 128M innodb_buffer_pool_size 参数 5.7 后可以在线调整,必须等于或整数倍 innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances

例如:

mysql> SET GLOBAL innodb_buffer_pool_size=402653184;

or my.cnf

[mysqld]

innodb_buffer_pool_size=402653184

 

l   innodb_buffer_pool_chunk_size 参数默认值 128M ,只能在启动时调整(命令行或者配置文件),且以 1M 为单位;

shell> mysqld --innodb-buffer-pool-chunk-size=134217728

 or my.cnf

 [mysqld]

         innodb_buffer_pool_chunk_size=134217728

         innodb_buffer_pool_instances default value is 1;

l   innodb_buffer_pool_instances 默认为 8 (or 1 if innodb_buffer_pool_size < 1GB) ,如果是 Windows 或者 32-bit platforms ,默认值为系统自动设置 (autosized); 其作用是划分 buffer pool 为多个区,提高并发效率。

2)          查询状态 mysql> SHOW STATUS WHERE Variable_name='InnoDB_buffer_pool_resize_status'; Buffer pool resizing progress is also logged in the server error log  

3)          预载入 buffer pool

要在服务器启动时预载入 buffer pool ,请启用选项:

innodb_buffer_pool_dump_at_shutdown innodb_buffer_pool_load_at_startup

相关推荐