啥是聚簇索引?

首先我们要明白:聚簇索引是基于B+树结构而产生的,整个树中都是以页为单位进行分级、存储的。

mysql中innodb存储引擎的B+树的结构是什么样子的?

B+树主要包括:叶子节点、非叶子节点。

叶子节点:是整个B+树最底层的,叶子节点中存储的是用户的真实记录信息和一些行信息及页信息。

非叶子节点:是叶子节点往上的所有节点,包括目录项、根节点等。目录项和叶子节点类似只不过目录项中存储的是目录项记录(包括页号、页中最小主键ID)它也是采用用户记录存储的方式来进行存储的而目录项和目录项是通过双向链表组织起来的。

如果当前B+树有四层(一般不会超过四层)。假设B+树中的所有节点都可以存储1000条记录则意味着可以存储1000的4次方条记录。

mysql中innodb存储引擎的B+树有哪些特点?

使用记录主键的大小进行记录和页的排序:

1.页内的记录是通过主键的大小顺序排成的一个单向链表。

2.各个存放用户记录的页(目录项)也是根据页中的记录的主键大小顺序排成一个双向链表的。

3.各个存放目录项的页也是根据页中记录的主键大小顺序排成一个双向链表的。

以此处为分界线在innodb引擎中满足以上所有条件的B+树我们就称其为聚簇索引,这种聚簇索引innodb引擎会自动创建。在innodb引擎中聚簇索引就是一种存储方式(所有的用户记录都会存储在叶子节点中)也就是我们常说的索引即数据。

猜你喜欢

转载自www.cnblogs.com/hxjz/p/12594659.html