汇集索引与非汇集索引

汇集(clustered)索引性能

  数据行的的物理顺序与列值(通常主键事务那一列)的逻辑顺序相同,一个表中只能有一个汇集索引。spa

  一个表就像之前用的新华字典,汇集索引就像拼音目录,而每一个字存放的页码就是数据的物理地址,若是查询一个字,只需查询该字对应在字典拼音目录对应的页码,就能够查询到这个字所在的位置,而拼音目录对应的A-Z的字顺序,和新华字典实际存储的字的顺序A-Z也是同样的。数据行的物理顺序与列值的顺序相同,若是查询的id比较靠后的数据,那么这行数据的地址在磁盘中的物理地址也会比较靠后。并且因为物理地址排列方式与汇集索引的顺序相同,因此就只能创建汇集索引。指针

 

 

  汇集索引的好处是索引的叶节点就是对应的数据节点,能够直接获取到对应的所有列的数据,而非汇集索引在索引没有覆盖到对应的列的时候须要进行二次查询,所以在查询方面,汇集索引的速度每每会更占优点。blog

非汇集索引排序

该索引中索引的逻辑顺序与磁盘上的物理存储顺序不一样,一个表中能够有多个非汇集索引。索引

非汇集索引就像字典中的偏旁字典,它的结构顺序与实际存放顺序不必定一致。事务

 

 

  非汇集索引的叶节点 仍然是索引节点,只是有一个指针指向对应的数据块,若是使用非汇集索引查询,而查询列中包含了其余该索引没有覆盖的列,那么还要进行第二次查询,查询节点上对应的数据行的数据。搜索

   汇集索引对于那些常常要搜索范围值的列特别有效。使用汇集索引找到包含第一个值的行后,即可以确保包含后续索引值的行在物理相邻。例如,若是应用程序执行 的一个查询常常检索某一日期范围内的记录,则使用汇集索引能够迅速找到包含开始日期的行,而后检索表中全部相邻的行,直到到达结束日期。这样有助于提升此 类查询的性能。一样,若是对从表中检索的数据进行排序时常常要用到某一列,则能够将该表在该列上汇集(物理排序),避免每次查询该列时都进行排序,从而节省成本。程序

相关文章
相关标签/搜索