1、聚簇索引
按照主键来建的索引一定是聚簇索引,其他列也可以建聚簇索引。
索引和数据一起构建索引,非叶子结点保存key,叶子结点保存行数据。
一张表一定只有一个聚簇索引,因为聚簇索引代表了文件的实际存储形式,一张表在磁盘上只会有一种存储结构。
2、非聚簇索引(辅助索引)
数据与索引分开存储,叶子结点保存了行数据的主键。
拿到主键之后再去聚簇索引查找得到行数据。
使用聚集索引可以减少访问磁盘的次数。
因为聚集索引的叶子结点保存了行数据,每次访问磁盘不只是把对应的行数据加载进内存,而是一块包含了多行(连续主键)数据加载进内存。
如果没有聚簇索引,非聚簇索引的叶子结点直接保存行数据在磁盘位置。每次查找都需要去磁盘取数据。
在修改行数据时,主键不变,聚簇索引就不要维护,只需要维护非聚簇索引就可以了。