Innodb存储引擎 读书笔记

1.缓冲池是占最大块内存的部分,用来存放各类数据的缓存。因为Innodb存储引擎的工做方式老是将数据库文件按页(每页16K)读取到缓冲池,而后按最近最少LRU的算法保留在缓冲池中的缓存数据。若是数据库文件须要修改,老是首先修改缓冲池中的页,发生修改后,该页即为脏页,而后再按照必定的频率将缓冲池的脏页刷新到文件。P22 算法

2.Innodb开创性的设计了插入缓冲,对于非汇集索引的插入或更新,不是每一次直接插入索引页,而是先判断缓冲池中是否包含该页。若是在,则直接插入,不在则先插入到一个缓冲池中,而后在以必定的频率执行缓冲和非汇集索引页子节点的合并工做。这时一般能将多个插入合并到一个操做中(在一个索引页中),提升了性能。P34 数据库

3.自适应哈希索引,对索引进行hash来快速查找。Innodb自动根据访问的频率和模式来为某些页创建hash索引P38 缓存

4.表空间由多个段组成,常见的段有数据段、索引段、回滚段。数据段即为B+树的叶节点,索引段即为非叶节点 P75 性能

5.Compact行记录方式:Null值不占存储空间,无论是定长或是不定长。行记录是经过链表的方式来串联 P88  spa

6.Varchar(N) 中的N是字符的长度,最大支持为65535个字节,当utf8gbk时,n的最大值都是不一样的。 设计

7.每一个页大小为16KB,当例如varchar的字节数超过该值时,即发生行溢出时,这个存放行溢出的页类型为Uncompress BLOB Page 索引

8.辅助索引,页级别不包含行的所有数据,其中包含了一个书签,用来告诉哪里能够找到对饮索引的的行数据,即相应行的汇集索引键。P174 内存

9.B+树是一棵矮的树,由于硬盘IO操做是高消耗的,因此通常的查询有一到两次的硬盘io就行了,因此通常的查询操做都在0.01ms左右 hash

相关文章
相关标签/搜索