chpater 2 : InnoDB存储引擎

chpater 2 : InnoDB存储引擎
这里写图片描述
线程

后台线程的主要作用是负责刷新内存池中的数据,保证缓冲池中的内存缓存的是最近的数据,此外将已修改的数据文件刷新到磁盘文件。

默认情况下,InnoDB存储引擎的后台线程有7个:4个IO线程、1个主线程、一个锁线程、一个错误监控线程。IO线程的数量由配置文件里的innodb_file_io_threads参数控制,默认为4.

内存

  1. 缓冲池(buffer pool)
  2. 重做日志缓冲池(redo log buffer)
  3. 额外的内存池(additional memory pool)

InnoDB的工作方式总是将数据库文件按页(每页16K读取到缓冲池,然后按照最近最少使用(LRU)的算法来保留在缓冲池中的缓存数据。如果数据库文件需要修改,总是首先修改咋缓存吃中的野(发生修改后,该页为脏页),然后按照一定的频率将缓冲池的脏页刷新到文件。
这里写图片描述
关键特性

插入缓冲

聚集索引是指数据库表行中数据的物理顺序与键值的逻辑(索引)顺序相同。一个表只能有一个聚集索引,因为一个表的物理顺序只有一种情况,所以,对应的聚集索引只能有一个。如果某索引不是聚集索引,则表中的行物理顺序与索引顺序不匹配,与非聚集索引相同,聚集索引有着更快的检索速度。
这里写图片描述
两次写
这里写图片描述
这里写图片描述
自适应哈希索引
InnoDB存储引擎会监控对表上索引的查找,如果观察到建立哈希索引可以带来速度的提升,则建立哈希索引,所以称之为自适应(adaptvie)的。自适应哈希索引通过缓冲池的B+树构造而来。

posted @ 2017-04-08 16:01  StevenLuke  阅读(116)  评论(0编辑  收藏  举报