大概数周之前,因为公司招人,想在网上找点面试题“借用借用”,于是无意中找到这样一道数据库题:
“索引有那两种形式?分别有什么优缺点?”
文章作者给出的答案是:
“聚集索引:表中存储的数据按照索引的顺序存储,检索效率比非聚集索引高,但对数据更新影响较大。
非聚集索引:不影响表中数据的存储顺序,检索效率比聚集索引低,但对数据更新影响较小。”
非聚集索引真的比聚集索引慢吗?就本人对数据库的理解,并不是这样的。
以sql SERVER为例,数据记录是分布在以8KB为单位的数据页上的。聚集索引就是数据本身,而非聚集索引保存的是索引键和对应的聚集索引键值。
因此绝大多数情况,一单位聚集索引的大小都大于一单位非聚集索引的大小,换句话说,一个数据页上能够容纳非聚集索引的条数是多余聚集索引的。
而sql SERVER是以页为单位来扫描数据的,因此扫描相同页数量的数据页,能够覆盖的非聚集索引数量会更多,如果合理的利用sql SERVER 2005的包含列的话,非聚集索引的查询效率是高于聚集索引的。
总结以上是内存溢出为你收集整理的聚集索引与非聚集索引哪个更快一些?全部内容,希望文章能够帮你解决聚集索引与非聚集索引哪个更快一些?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)