InnoDB存储引擎-内存-缓冲池
概述
InnoDB存储引擎是基于磁盘存储的, 并将其记录按照页
的方式进行管理. 而磁盘IO与内存IO的速度相差可能接近1000倍, 所以使用缓冲池(Buffer Pool)
可以有效提高响应能力. 当数据库需要进行数据页读取的时候, 先将页数据存储在缓冲池中, 下一次再读取的时候, 先检查缓冲池中是否存在数据, 如果存在则称为命中(hit)
, 否则会读取磁盘上的页.
为了提高大容量读取的效率, 缓冲池被分为多个页面, 每个页面可以存储多个行. 为了提高缓冲池的管理效率, 缓冲池的页面被实现为链表, 使用LRU算法的变体来将部分数据老化掉.
LRU算法
缓冲池配置
使用InnoDB的标准监视器监视缓冲池
使用如下命令SHOW ENGINE INNODB STATUS;
来查看当前的InnoDB引擎状态