- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《mysql索引优化》.pdf
mysql索引优化:SQL优化-索引 疯狂代码 / ĵ http://DataBase/Article67339.html ()深入浅出理解索引结构 实际上您可以把索引理解为种特殊目录微软SQL SERVER提供了两种索引:聚集索引(clustered index也称 聚类索引、簇集索引)和非聚集索引(nonclustered index也称非聚类索引、非簇集索引)下面我们举例来介绍说 明下聚集索引和非聚集索引区别 其实我们汉语字典正文本身就是个聚集索引比如我们要查“安”字就会很自然地翻开字典前几页“安”拼 音是“an”而按照拼音排序汉字字典是以英文字母“a”开头并以“z”结尾那么“安”字就自然地排在字典前 部如果您翻完了所有以“a”开头部分仍然找不到这个字那么就介绍说明您字典中没有这个字;同样如果查“张 ”字那您也会将您字典翻到最后部分“张”拼音是“zhang”也就是说字典正文部分本身就是个目录您不需要 再去查其他目录来找到您需要找内容 我们把这种正文内容本身就是种按照定规则排列目录称为“聚集索引” 如果您认识某个字您可以快速地从自典中查到这个字但您也可能会遇到您不认识字不知道它发音这时候您 就不能按照刚才思路方法找到您要查字而需要去根据“偏旁部首”查到您要找字然后根据这个字后页码直接翻 到某页来找到您要找字但您结合“部首目录”和“检字表”而查到字排序并不是真正正文排序思路方法比如您 查“张”字我们可以看到在查部首的后检字表中“张”页码是672页检字表中“张”上面是“驰”字但页码却 是63页“张”下面是“弩”字页面是390页很显然这些字并不是真正分别位于“张”字上下方现在您看到连续 “驰、张、弩” 3字实际上就是他们在非聚集索引中排序是字典正文中字在非聚集索引中映射我们可以通过这 种方式来找到您所需要字但它需要两个过程先找到目录中结果然后再翻到您所需要页码 我们把这种目录纯粹是目录正文纯粹是正文排序方式称为“非聚集索引” 通过以上例子我们可以理解到什么是“聚集索引”和“非聚集索引” 进步引申下我们可以很容易理解:每个表只能有个聚集索引目录只能按照种思路方法进行排序 ( 2)何时使用聚集索引或非聚集索引 下面表整理总结了何时使用聚集索引或非聚集索引(很重要) 动作描述 使用聚集索引 使用非聚集索引 外键列 应 应 主键列 应 应 列经常被分组排序(order by) 应 应 返回某范围内数据 应 不应 小数目区别值 应 不应 大数目区别值 不应 应 频繁更新列 不应 应 频繁修改索引列 不应 应 个或极少区别值 不应 不应 事实上我们可以通过前面聚集索引和非聚集索引定义例子来理解上表如:返回某范围内数据项比如您某个表 有个时间列恰好您把聚合索引建立在了该列这时您查询2004年1月1日至2004年10月1日的间全部数据时这个速 度就将是很快您这本字典正文是按日期进行排序聚类索引只需要找到要检索所有数据中开头和结尾数据即可;而 不像非聚集索引必须先查到目录中查到每项数据对应页码然后再根据页码查到具体内容 ( 3)结合实际谈索引使用误区 理论目是应用虽然我们刚才列出了何时应使用聚集索引或非聚集索引但在实战中以上规则却很容易被忽视 或不能根据实际情况进行综合分析下面我们将根据在实战中遇到实际问题来谈下索引使用误区以便于大家掌握 索引建立思路方法 1、主键就是聚集索引 这种想法笔者认为是极端是对聚集索引种浪费虽然SQL SERVER默认是在主键上建立聚集索引 通常我们会在每个表中都建立个ID列以区分每条数据并且这个ID列是自动增大步长般为1我们这个办公自 动化例子中列Gid就是如此此时如果我们将这个列设为主键SQL SERVER会将此列默认为聚集索引这样做有好处 就是可以让您数据在数据库中按照ID进行物理排序但笔者认为这样做意义不大 显而易见聚集索引优势是很明显而每个表中只能有个聚集索引规则这使得聚集索引变得更加珍贵 从我们前面谈到聚集索引定义我们可以看出使用聚集索引最大好处就是能够根据查询要求迅速缩小查询范 围避免全表扫描在实际应用中ID号是自动生
文档评论(0)