美文网首页
InnoDB存储引擎

InnoDB存储引擎

作者: ericsonyc | 来源:发表于2020-01-29 20:41 被阅读0次

InnoDB是一个高性能,高可用,高扩展性的存储引擎。

InnoDB体系架构

InnoDB存储引擎

InnoDB存储引擎有多个内存块,这些内存块组成一个大的内存池。

后台线程

InnoDB是一个多线程的结果,后台有很多线程,负责处理不同的任务:

  • Master thread
    负责将缓冲区的数据异步的刷新到磁盘上。
  • IO thread
    InnoDB中使用了大量的异步线程来处理I/O;该线程主要负责这些请求的回调处理;
  • purge thread
    事务被提交后,所使用的undo日志就不需要了,需要该线程来回收已经使用的undo页;
  • page cleaner thread
    将脏页的刷新操作放在单独的该线程中执行;

内存

缓冲池

InnoDB是基于磁盘存储的,其中的记录按照页来管理。由于磁盘速度和CPU速度的差别,需要缓冲池来提高性能。
InnoDB的缓冲池:
缓冲池存储的数据页类型有:

  • 数据页
  • 索引页
  • undo页
  • 插入缓冲
  • 自适应哈希索引
  • 锁信息
  • 数据字典信息
缓冲池

缓存页管理

InnoDB的缓存池是一块很大的内存区域;以页的形式来组织,里面存放着各种类型的页;如何对这些页进行管理呢?
数据库中的缓冲池通常通过LRU(最近最少使用)算法来管理;即需要一个LRU的list来存放这些页,最常使用的放在前面,最少使用的放在最后,当容量不够时,先释放最后最少使用的页;页的默认大小是16KB。
对于数据库的索引和数据的扫描操作;有可能会把热点的页置换出去,这样下次访问依然要磁盘读取;这种情况下,对LRU算法做了修改,加入了midpoint的概念;新的页会被先加载到midpoint的位置;然后一个时间阈值后自动的添加到LRU列表头。

改进的算法有点类型JVM里的年轻代和老年代的算法;对象先被分配在年轻代,当轮询过一定的次数后,对象被加载到老年代。

checkpoint机制主要分为两种:

  • sharp checkpoint:数据库关闭时,将所有脏页刷回磁盘;
  • fuzzy checkpoint:数据库运行时,刷新一部分页回磁盘;

fuzzy checkpoint的时机:
master thread checkpoint
flush_lru_list checkpoint
async/sync flush checkpoint
dirty page too much checkpoint

InnoDB关键特性

  • Change Buffer
  • Double Write
  • 自适应哈希索引
  • 异步IO
  • 邻居页刷新

相关文章

  • 「Mysql索引原理(一)」1.存储引擎简介

    存储引擎 0. 前言1. 存储引擎查看2. InnoDB存储引擎特性存储InnoDB历史3. MyISAM存储引擎...

  • MySQL-存储引擎

    零、本文纲要 一、MySQL存储引擎 二、InnoDB存储引擎1、InnoDB逻辑存储结构2、InnoDB架构3、...

  • mysql(七)

    MySQL存储引擎-innodb 查看存储引擎 innodb和myisam的物理区别 innodb 核心特性 MV...

  • 浅谈InnoDB存储引擎中的锁

    InnoDB存储引擎是MySQL数据库默认的事务型存储引擎,也是使用比较多的存储引擎。InnoDB存储引擎不紧支持...

  • MySQL-InnoDB体系架构

    作者:刘仁鹏参考资料:《MySQL技术内幕 InnoDB存储引擎》 1.InnoDB体系架构 InnoDB存储引擎...

  • mysql规范

    一、基础规范【强制】使用InnoDB存储引擎解读:InnoDB存储引擎是MySQL默认存储引擎,支持事务和行级锁,...

  • Mysql索引优化

    存储引擎 InnoDB InnoDB是是Mysql默认的事务性存储引擎 InnoDB才有MVCC来支持高并发,并且...

  • innodb存储引擎的物理存储结构

    innodb存储引擎的物理存储结构 innodb存储引擎的物理存储结构相当于/data/mysql/data下的文...

  • InnoDB存储引擎内幕

    InnoDB存储引擎内幕 一、InnoDB存储引擎 1、体系架构 1.1. 后台线程 1.1.1. Master ...

  • MySql技术内幕-InnoDB存储引擎(二)

    InnoDB体系架构 InnoDB的存储引擎体系结构如下图所示,从图中可知,InnoDB存储引擎有多个内存块,可以...

网友评论

      本文标题:InnoDB存储引擎

      本文链接:https://www.haomeiwen.com/subject/wutvactx.html