InnoDB存储引擎-内存-缓冲池

概述

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

LRU算法

InnoDB存储引擎-内存-缓冲池

缓冲池配置

使用InnoDB的标准监视器监视缓冲池

使用如下命令SHOW ENGINE INNODB STATUS;来查看当前的InnoDB引擎状态

InnoDB缓冲池与性能优化

参考