InnoDB存储引擎

InnoDB存储引擎

参考文章:http://t.csdnimg.cn/3J6VF

InnoDB架构

  1. 内存结构
    Buffer Pool 缓冲池
    Change Buffer 修改缓冲
    Adaptive Hash Index 自适应哈希索引
    Log Buffer 日志缓冲
  2. 磁盘结构
    系统表空间(重要)
    独立表空间(重要)
    通用表空间
    临时表空间

缓冲池 Buffer Pool

  • 缓冲池 Buffer Pool 用于加速数据的访问和修改。
  • 默认大小 128 M
  • 缓存数据到内存,最大限度地减少磁盘 IO,加速 热点数据 的读和写
  • 使用 LRU 算法(最近最久未使用)淘汰非热点数据页
  • LRU:根据页数据的历史访问来淘汰数据,如果数据最近被访问过,那么将来访问的几率也更高,优先淘汰最近没有被访问到的数据

LRU算法:

2732235c2f90448a95705ece823f35ee

  • 对于 Buffer Pool 中数据的「查询」,InnoDB 直接读取返回;

  • 对于 Buffer Pool 中数据的「修改」,InnoDB 直接在 Buffer Pool 中修改,并将修改写入 redo Log 中,当数据页被 LRU 算法淘汰时写入磁盘,若持久化前系统崩溃,则在重启后使用 redo Log 进行恢复