聚集索引和非唯一索引

原创
小哥 3年前 (2022-11-16) 阅读数 35 #大杂烩

聚集索引 定义 : 数据行的物理顺序与列值(一般是主键的那一列)的逻辑顺序相同,一个表中只能拥有一个聚集索引。

非聚集索引 定义: 该索引中索引的逻辑顺序与磁盘上行的物理存储顺序不同,一个表中可以拥有多个非聚集索引。

区别:

======

聚集索引:可以帮助把很大的范围,迅速减小范围。但是查找该记录,就要从这个小范围中Scan了。
非聚集索引:把一个很大的范围,转换成一个小的地图。你需要在这个小地图中找你要寻找的信息的位置。然后通过这个位置,再去找你所需要的记录。

索引与主键的区别:


主键:主键是唯一的,用于快速定位一条记录。
聚集索引:聚集索引也是唯一的。( 因为聚集索引的划分依据是物理存储 )。而聚集索引的主要是为了快速的缩小查找范围,即记录数目未定。
主键和索引没有关系 。他们的用途相近。如果聚集索引加上唯一性约束之后,他们的作用就一样了。

使用场景:


基于上述的两种规则,那么在什么时候适合聚集索引,什么时候适合非聚集索引?

总结心得:

  1. 使用聚集索引的查询效率要比非聚集索引的效率要高,但是如果需要频繁去改变聚集索引的值,写入性能并不高,因为需要移动对应数据的物理位置。
  2. 非聚集索引在查询的时候可以的话就避免二次查询,这样性能会大幅提升。
  3. 不是所有的表都适合建立索引,只有数据量大表才适合建立索引,且建立在选择性高的列上面性能会更好。
版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除

热门