网络三部分mysql联合索引详解.pdfVIP

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

mysql联合索引详解

运营博客

所有的MySQL列类型能被索引。在相关的列上的使用索引是改进SELECT操作性能的最好

方法。一、前缀索引对于CHAR和VARCHAR列,你可以索引列的前缀。这更快并且比索

引整个列需要较少的磁盘空间。在CREATETABLE语句中索引列前缀的语法看起来像这样:

KEYindex_name#40;col_name#40;length#41;#41;下面的例子为name列的头10个字

符创建一个索引:mysql;CREATETABLEtest#40;nameCHAR#40;200#41;NOT

NULL,KEYindex_name#40;name#40;10#41;#41;#41;;对于BLOB和TEXT列,你必

须索引列的前缀,你不能索引列的全部。二、多列索引MySQL能在多个列上创建索引。一

值的一个排序数组。当你为在一个WHERE子句索引的第一列指定已知的数量时,MySQL

以这种方式使用多重列索引使得查询非常快速,即使你不为其他列指定值。索引原则1.索引

越少越好:主要在修改数据时,每个索引都要进行更新,降低写速度。2.最窄的字段放

在键的左边3.避免filesort排序,临时表和表扫描.MySQL如何利用索引优化ORDERBY排

序语句MySQL也能利用索引来快速地执行ORDERBY和GROUPBY语句的排序和分组操

作。通过索引优化来实现MySQL的ORDERBY语句优化:1、ORDERBY的索引优化。如

果一个SQL语句形如:SELECT#91;column1#93;,#91;column2#93;,….FROM

#91;TABLE#93;ORDERBY#91;sort#93;;在[sort]这个栏位上建立索引就可以实现利

用索引进行orderby优化。2、WHERE+ORDERBY的索引优化,形如:SELECT

#91;column1#93;,#91;column2#93;,….FROM#91;TABLE#93;WHERE

#91;columnX#93;=#91;value#93;ORDERBY#91;sort#93;;建立一个联合索引

(columnX,sort)来实现orderby优化。注意:如果columnX对应多个值,如下面语句就无法

利用索引来实现orderby的优化SELECT#91;column1#93;,#91;column2#93;,….FROM

#91;TABLE#93;WHERE#91;columnX#93;IN

#40;#91;value1#93;,#91;value2#93;,…#41;ORDERBY#91;sort#93;;3、WHERE+

多个字段ORDERBYSELECT*FROM#91;table#93;WHEREuid=1ORDERx,yLIMIT

0,10;建立索引(uid,x,y)实现orderby的优化,比建立(x,y,uid)索引效果要好得多。MySQLOrder

By不能使用索引来优化排序的情况*对不同的索引键做ORDERBY:(key1,key2分别建

立索引)SELECT*FROMt1ORDERBYkey1,key2;*在非连续的索引键部分上做ORDER

BY:(key_part1,key_part2建立联合索引;key2建立索引)SELECT*FROMt1WHERE

key2=constantORDERBYkey_part2;*同时使用了ASC和DESC:(key_part1,key_part2建

立联合索引)SELECT*FROMt1ORDERBYkey_part1DESC,key_part2ASC;*用于搜索记

录的索引键和做ORDERBY的不是同一个:(key1,key2分别建立索引)SELECT

文档评论(0)

guchengyong + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档