聚集索引与非聚集索引哪个更快一些?

  大概数周之前,因为公司招人,想在网上找点面试题“借用借用”,于是无意中找到这样一道数据库题:

  “索引有那两种形式?分别有什么优缺点?”

  文章作者给出的答案是:

  “聚集索引:表中存储的数据按照索引的顺序存储,检索效率比非聚集索引高,但对数据更新影响较大。

  非聚集索引:不影响表中数据的存储顺序,检索效率比聚集索引低,但对数据更新影响较小。”

  非聚集索引真的比聚集索引慢吗?就本人对数据库的理解,并不是这样的。

  以SQL SERVER为例,数据记录是分布在以8KB为单位的数据页上的。聚集索引就是数据本身,而非聚集索引保存的是索引键和对应的聚集索引键值。

  因此绝大多数情况,一单位聚集索引的大小都大于一单位非聚集索引的大小,换句话说,一个数据页上能够容纳非聚集索引的条数是多余聚集索引的。

  而SQL SERVER是以页为单位来扫描数据的,因此扫描相同页数量的数据页,能够覆盖的非聚集索引数量会更多,如果合理的利用SQL SERVER 2005的包含列的话,非聚集索引的查询效率是高于聚集索引的。

相关文章

本篇内容主要讲解“sqlalchemy的常用数据类型怎么使用”,感...
今天小编给大家分享一下sqlServer实现分页查询的方式有哪些的...
这篇文章主要介绍“sqlmap之osshell怎么使用”,在日常操作中...
本篇内容介绍了“SQL注入的知识点有哪些”的有关知识,在实际...
1. mssql权限sa权限:数据库操作,文件管理,命令执行,注册...
sql执行计划如何查看?在SPL庞大的数据中我们不知道如何查看...