聚簇索引和非聚簇索引的简单理解

2018-04-10  本文已影响0人  bulbuls

假设我们有一张表,表里面有俩个字段 id int,name varchar,其中id是主键,那么这张表的聚簇索引和非聚簇索引有什么区别呢(为了方便我以表格的形式来展示,实际上是树形结构)

非聚簇索引的样子:

id 1 2 3
磁盘地址 数据1的地址 数据2的地址 数据3的地址

非聚簇索引二级索引的样子: 以name为索引

name 张三 李四 王五
磁盘地址 张三的地址 李四的地址 王五的地址

非聚簇索引和二级索引比较相似通过索引列找到数据的实际磁盘地址,再通过磁盘地址找到数据;

聚簇索引的样子:

id 1 2 3
row数据 1,张三 2,李四 3,王五

聚簇索引二级索引的样子: 以name为索引

name 张三 李四 王五
row数据 张三,1 李四,2 王五,3
聚簇索引的叶子结点上存储着列数据,通过主键找到叶子后就能拿到数据了。 聚簇索引的二级索引则存储列和主键,通过索引列找到主键之后,在去主键聚簇索引上找到相关的列数据
注:聚簇索引和非聚簇索引的区别远不止这些,以上只是个人的一点点理解,如有错误请指正
上一篇 下一篇

猜你喜欢

热点阅读