聚集索引和非聚集索引的根本区别
聚集索引:
表排列顺序:表记录的排列顺序与索引的排列顺序一致。
查询速度快:因为一旦具有第一个索引值的纪录被找到,具有连续索引值的记录也一定物理的紧跟其后。
聚集索引的缺点:对表进行修改速度较慢,这是为了保持表中的记录的物理顺序与索引的顺序一致,而把记录插入到数据页的相应位置,必须在数据页中进行数据重排,降低了执行速度。
个数:一个表中已经有一个聚集索引,个表不可能有两个或以上的聚集索引。
使用场合:
a.此列包含有限数目的不同值;
b.查询的结果返回一个区间的值;
c.查询的结果返回某值相同的大量结果集。
非聚集索引:
表排列顺序:物理顺序和索引的顺序不一致
索引重组:非聚集索引比聚集索引层次多,添加记录不会引起数据顺序的重组
使用场合:
a.此列包含了大量数目不同的值;
b.查询的结束返回的是少量的结果集;
c.order by 子句中使用了该列
不适合建立索引的情形
a.经常插入、修改、删除的表
b.数据量比较少的表
适合建立索引的情况
经常出现在where group by order by的列
无法使用索引的情形
a.对索引列使用了函数或计算
b.对索引列使用了模糊查询
c.在where子句使用了子查询
d.数据类型转换将导致索引失效
e.负向比较将导致索引失效
浙公网安备 33010602011771号