博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SqlServer为什么自动在主键上建立聚集索引
阅读量:7210 次
发布时间:2019-06-29

本文共 533 字,大约阅读时间需要 1 分钟。

      微软推荐为每一个表建立一个聚集索引,但是由于sqlserver简单易用,而且很多人并不了解聚集索引,非聚集索引这些东西,所以如果sqlserver不在主键上建立聚集索引的话,可能会导致大部分的表都是堆结构,而堆结构是乱序存放的,检索很不方便,空间也不好管理,所以微软就来了个强硬的,如果不在建表的同事创建聚集索引,sqlserver会自动在主键上面建聚集索引。

      其实在网上的大部分资料都不推荐聚集索引建立在主键上,觉得这是浪费,理由是聚集索引查询比较快,应该建立在经常查询和具有同一属性值的列上(比如分类),这个好像说的过去。

      不过就本人目前处理过的数据(亿级),还没有充分的证据表明聚集建立在非主键上有明显的优势,因为一个表的查询不单是这个聚集索引查询,他还涉及其他查询,其他查询的索引还要依赖于聚集索引才能找到数据,况且表除了查询还有insert,update,delete 每一个操作都可能涉及聚集索引,如果主键不是聚集索引的话,insert 一条记录,update,delete通过主键修改某条记录可能都需要走两步,第一步,先找到主键,在通过主键去找聚集索引,最终才找到数据,如果主键是聚集索引的话,这些操作只需要一步。

      当然这也只是本人的分析,不一定正确。

 

转载地址:http://itrum.baihongyu.com/

你可能感兴趣的文章
年终知识分享——移动应用开发
查看>>
Centos 5.5 安装Mysql5.5过程
查看>>
网络爬虫基本原理(二)
查看>>
AndroidUI组件之ListView小技巧
查看>>
使用ThinkPHP框架高速开发站点(多图)
查看>>
解决iframe缓存
查看>>
mysql事物
查看>>
微软开源代码
查看>>
ssh 实体关系分析确立(ER图-实体关系图)
查看>>
shell语法简单介绍
查看>>
iOS捕获异常,常用的异常处理方法
查看>>
Struts2(九)OGNL标签一与Struts2标签
查看>>
双网卡绑定-bond0
查看>>
利用扩展事件进行调优和Troubleshooting PPT分享
查看>>
finger-guessing game:1场景搭建
查看>>
axure7.0 汉化包下载
查看>>
OC开发_Storyboard——iPad开发
查看>>
NSURLSession使用说明及后台工作流程分析
查看>>
record
查看>>
linux浏览器,邮件客户端,输入法,双屏设置,应用软件,gnome-screenshot/scrot -s截图,office...
查看>>