聚集索引、非聚集索引和复合索引

1. 聚集索引

一种索引,该索引中键值的逻辑顺序决定了表中相应行的物理顺序。一般一个表只有一个聚集索引,往往是主键。

下图演示的是聚集索引, 可以看到叶子节点就是物理上有序的pages

2. 非聚集索引

一种索引,该索引中索引的逻辑顺序与磁盘上行的物理存储顺序不同。

非聚集索引的结构如下图:可以看到叶子节点并不是物理上连续的pages,还需要再进行一次数据的路由

B树索引、哈希索引、位图索引、倒排索引总结与应用

1. 什么是索引

索引提供指向存储在表的指定列中的数据值的指针,然后根据您指定的排序顺序对这些指针排序。数据库使用索引的方式与您使用书籍中的索引的方式很相似:它搜索索引以找到特定值,然后顺指针找到包含该值的行。这样就避免了一一比对数据的IO损耗,大大提高了查询效率。

2. 索引的实现方法

2.1 B-tree索引

B树索引是数据库当中使用最广泛的索引。其主要使用B+数这种数据结构(改进的而二分查找树),值全部保存在叶子节点,查询效率比较稳定。B+数的根节点常驻内存,每次查找的IO次数和树的高度h相关。B树的结构如下: