MySQL 聚集索引和非聚集索引的区别

tech2022-11-04  111

根本区别

聚集索引和非聚集索引的根本区别是表记录的排列顺序和与索引的排列顺序是否一致。

聚集索引 

聚集索引表记录的排列顺序和索引的排列顺序一致,所以查询效率快,只要找到第一个素引值记录,其余就连续性的记录在物理也一样连续存放。聚集索引对应的缺点就是修改慢,因为为了保证表中记录的物理和索引顺序一致,在记录插入的时候,会对数据页重新排序。 

聚集索引类似于新华字典中用拼音去查找汉字,拼音检索表于书记顺序都是按照a~z排列的,就像相同的逻辑顺序于物理顺序一样

非聚集索引

非聚集素引制定了表中记录的逻辑顺序,但是记录的物理和索引不一定一致,两种素引都采用B+树结构,非聚集索引的叶子层并不和实际数据页相重叠,而采用叶子层包含一个指向表中的记录在数据页中的指针方式。非聚集索引层饮多,不会造成数据重排。 

非聚集索引类似在新华字典上通过偏旁部首来查询汉字,检索表也许是按照横竖、撇来排列的,但是由于正文中是arz的拼音顺序,所以就类似于逻辑地址于物理地址的不对应。同时适用的情况就在于分组,大数目的不同值,频繁更新的列中,这些情况即不适合聚集索引。 

 

最新回复(0)