innodb缓冲池预热

innodb缓冲池预热功能可以加载磁盘上dump下来的buffer信息到内存buffer pool中,这个功能可以加快业务查询(指任何关联该数据的操作,不仅限于select) 速度。如果关闭该功能,在数据库刚打开时,内存是空的,没有加载任何业务数据,初始连接的业务基本上都需要从物理磁盘中读取数据到内存中。
oracle数据库没有缓冲池预热功能,重启后刚开始都是业务自己读磁盘数据。

innodb buffer pool是innodb的数据缓冲区(类似oracle的数据高速缓冲区)

innodb缓冲池预热功能由一下参数控制
mysql> show variables like '%buffer%pool%';
+-------------------------------------+----------------+
| Variable_name                       | Value          |
+-------------------------------------+----------------+
| innodb_buffer_pool_chunk_size       | 134217728      |
| innodb_buffer_pool_dump_at_shutdown | ON             |
| innodb_buffer_pool_dump_now         | OFF            |
| innodb_buffer_pool_dump_pct         | 25             |
| innodb_buffer_pool_filename         | ib_buffer_pool |
| innodb_buffer_pool_instances        | 1              |
| innodb_buffer_pool_load_abort       | OFF            |
| innodb_buffer_pool_load_at_startup  | ON             |
| innodb_buffer_pool_load_now         | OFF            |
| innodb_buffer_pool_size             | 134217728      |
+-------------------------------------+----------------+
10 rows in set (0.00 sec)


innodb_buffer_pool_instances默认为1,表示innoDB缓冲池的区域chunk个数,多个pool可以提升innodb并发性能
innodb_buffer_pool_chunk_size,每个chunk的大小
innodb_buffer_pool_dump_at_shutdown:默认on,关闭mysql时,buffer中的数据会存放dump在磁盘上,也就是我们看到的文件ib_buffer_pool(由innodb_buffer_pool_filename参数控制),dump大小默认为25%(由innodb_buffer_pool_dump_pct参数控制)
innodb_buffer_pool_load_at_startup:在打开mysql时,加载上次关闭的时dump下来的ib_buffer_pool数据到buffer pool中
innodb_buffer_pool_size为buffer pool的大小,默认128m(mysql5.7)
innodb_buffer_pool_load_abort中断缓冲池预热任务,由innodb_buffer_pool_load_at_startup 和innodb_buffer_pool_load_now发起的任务
innodb_buffer_pool_dump_now立即dump buffer pool到磁盘上,一般跟innodb_buffer_pool_load_now一起使用
innodb_buffer_pool_load_now立即开启缓冲池预热,加载ib_buffer_pool文件数据到buffer pool中

猜你喜欢

转载自blog.csdn.net/qq_40687433/article/details/108037990