网站大量收购独家精品文档,联系QQ:2885784924

lesson_2_1mysql服务-索引优化篇(二).ppt

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
lesson_2_1mysql服务-索引优化篇(二)

索引优化-分析篇 索引优化-优化思路 Query语句的优化思路: 1)优化更需要优化的query; 2)定位优化对象的性能瓶颈; 3)明确优化的目标 4)从Explain入手 索引优化-优化原则 Query语句的优化原则: 1)多使用Profile 2)永远用小结果集驱动大的结果集 3)尽可能在索引中完成排序 4)只取自己需要的Columns; 5)仅仅使用最有效的过滤条件 6)尽可能避免复杂的Join和子查询; 索引优化-执行计划explain Explain命令用于查看执行效果。 explain的语法如下: explain [extended] select ... from ... where ... 索引优化-explain结果 ID:mysql query optimizer选定的执行计划中查询的序列号 Select type:所使用的查询类型,主要有一下这中查询类型 Table:显示这一步所访问的数据库的表的名称 索引优化-explain Type Type:告诉我们队表使用的访问方式,主要包含如下几种 all:全表扫描 const:读常量,最多只会有一条记录匹配,由于是常量,实际上只需读一次。 eq_ref:最多只会有一条匹配结果,一般是通过主键或唯一键索引来访问。 fullext:进行全文索引检索 index:全索引扫描 index_merge:查询中同时使用两个或多个索引,然后对索引结果进行合并(merge),再读取表数据 索引优化-explain Key Possible_keys:该查询可以利用的索引。如果没有任何索引可以使用,就会显示成NUll,这项内容对优化索引是的调整非常重要。 Key:mysql query optimizer 从possible_keys中所选择使用的索引 Key_len:被选中使用索引的索引键长度。 Ref:列出通过常量(const),还是某个表的字段(如果是join)来过滤(通过key)的。 Row:mysql query optimizer中通过系统收集的统计信息估算出来的结果记录条数。 索引优化-explain Extra extra:查询中每一步实现的额外细节信息,主要回事一下的内容。 distict:查找distinct值,当mysql找到了第一条匹配的结果是,将停止该值的查询,转为后面其他值查询。 full scan on null key:子查询中的一种优化方式,主要在遇到无法通过索引访问NULL值时使用 Impossible where noticed afer reading const table:mysqlquery optimizer通过收集到的统计系信息判断出不可能存在的结果 no table:query语句中使用 from dual或不包含任何from子句。 notexists:在某些左连接中,mysql query optimizer通过改变原有query的组成而使用的优化方法,可以部分减少数据访问次数。 索引优化-explain Using using filesort:当query中包含order by操作,而且无法利用索引完成排序操作的时候,mysql query optimizer不得不选择相应的排序算法来实现。指Mysql将用外部排序而不是按照index顺序排列结果。数据较少时从内存排序,否则从磁盘排序 using index:所需数据只需在index即可全部获得,不需要再到表中取数据 Using index for group-by :数据访问和using index 一样,所需数据局秩序要读取索引,当query中使用groupby 或idstinct 子句时,如果分组字段也在索引中,extra中的信息就会使using index for group-by 索引优化-explain Using Using temporary:当mysql在某些操作中必须使用临时表是,在extra信息中就会出现Using temporary.主要常见于groupby和group by等操作中。 using where :如果不读取表的所有数据,或不是仅仅通过索引就可以获取所有需要的数据,则会出现using where的信息。 using where with pushed condition:这是一个仅仅在NDBCluster存储引擎中才会出现的信息。 索引优化-Using where 和 Using index Using index不读数据文件,只从索引文件获取数据 Using where过滤元组和是否读取数据文件或索引文件没有关系 1 没有Using w

您可能关注的文档

文档评论(0)

yanpizhuang + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档