mysql之innodb_buffer_pool
2021/10/11 2:14:32
本文主要是介绍mysql之innodb_buffer_pool,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
mysql 重启之后,innodb_buffer_pool几乎是空的,没有任何的缓存数据。随着sql语句的执行,table中的数据以及index 逐渐被填充到buffer pool里面,之后的查询语句只需要在内存中操作(理想状态下),大幅度提升了mysql的性能。 这个逐渐填充的过程可能需要1-2个小时,甚至更久也说不准。此时使用的是 FREE链表
然后在buffer pool 里使用 LRU 链表,通过最近最少使用算法区分热数据(yong)和冷数据(old). 其中old 默认占整个链表大小的3/8.
可以通过innodb_old_blocks_pct 修改默认值.
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 |
+-------------------------------------+----------------+
手工导出的话,可以用这个命令:
mysql> SET innodb_buffer_pool_dump_now=ON;
然后mysql会在innodb的数据目录中生成一个文件:ib_buffer_pool
关闭mysql的时候,自动导出:
mysql> SET innodb_buffer_pool_dump_at_shutdown=ON; FLUSH 链表 负责将内存中修改的数据,还没落盘的,脏数据刷入FLU链表.
这篇关于mysql之innodb_buffer_pool的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-25如何部署MySQL集群资料:新手入门教程
- 2024-12-24MySQL集群部署资料:新手入门教程
- 2024-12-24MySQL集群资料详解:新手入门教程
- 2024-12-24MySQL集群部署入门教程
- 2024-12-24部署MySQL集群学习:新手入门教程
- 2024-12-24部署MySQL集群入门:一步一步搭建指南
- 2024-12-07MySQL读写分离入门:轻松掌握数据库读写分离技术
- 2024-12-07MySQL读写分离入门教程
- 2024-12-07MySQL分库分表入门详解
- 2024-12-07MySQL分库分表入门指南