假设我们有一张表,表里面有俩个字段 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 |