索引是一个单独的、物理的数据库结构,是数据库的一个表中所包含的值的列表,其中注明了表的各个值所在的存储位置
索引是依赖于表建立的,实际上一个表的存储是由两部分组成的,一部分用来存放表的数据页面,另一部分用来存放索引页面。
一般数据库,按存储结构不同将索引分为簇索引(ClusteredIndex)和非簇索引(NoClusteredIndex)
1.簇索引
簇索引对表的物理数据页中的数据按列进行排序,然后再重新存储到磁盘上,及簇索引与数据是混为一体的,它的叶节点中存储的是实际的数据
表的数据行只能以一种排序方式存储在磁盘上,所以一个表只能有一个簇索引(比如学生表中有一列学生姓名,并为学生姓名创建了簇索引,那么表的数据行会按照学生姓名列,重新进行排序并存储,如果在设置一个簇索引,排序会与学生姓名冲突,所以一个表只能有一个簇索引)
2.非簇索引
非簇索引具有与表的数据完全分离的结构,使用非簇索引不必将物理数据页的数据按列排序
非簇索引的叶节点中存储了关键字的值和行定位器。行定位器的结构和存储内容取决于数据的存储方式。如果数据是以簇索引的方式存储的,则行定位器存储的是簇索引的索引键;如果数据不是以簇索引的方式存储的,则行定位器存储的是指向数据行的指针,这种方式又称堆存储方式
理论上,一个表最多建249个非簇索引
https://www.cnblogs.com/wsming/p/13864292.html
https://blog.csdn.net/junli_chen/article/details/107715346
https://blog.csdn.net/alexdamiao/article/details/51934917
网友评论