mysql,如何看执行计划(共篇)

mysql,如何看执行计划(共篇)

ID:14840396

大小:39.00 KB

页数:16页

时间:2018-07-30

mysql,如何看执行计划(共篇)_第1页
mysql,如何看执行计划(共篇)_第2页
mysql,如何看执行计划(共篇)_第3页
mysql,如何看执行计划(共篇)_第4页
mysql,如何看执行计划(共篇)_第5页
资源描述:

《mysql,如何看执行计划(共篇)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、mysql,如何看执行计划(共5篇):如何看执行计划mysqlmysql执行计划详解mysql优化mysql执行计划怎么看篇一:mysql详解执行计划MySQL执行计划解读1、id如果相同,可以认为是一组,从上往下顺序执行;在所有组中,id值越大,优先级越高,越先执行Explain语法EXPLAINSELECT??变体:1.EXPLAINEXTENDEDSELECT??将执行计划“反编译”成SELECT语句,运行SHOWWARNINGS可得到被MySQL优化器优化后的查询语句2.EXPLAINPARTITIONSSELECT??用于分区表的EXPLAIN执

2、行计划包含的信息id包含一组数字,表示查询中执行select子句或操作表的顺序id相同,执行顺序由上至下如果是子查询,id的序号会递增,id值越大优先级越高,越先被执行id如果相同,可以认为是一组,从上往下顺序执行;在所有组中,id值越大,优先级越高,越先执行select_type表示查询中每个select子句的类型(简单OR复杂)a.SIMPLE:查询中不包含子查询或者UNIONb.查询中若包含任何复杂的子部分,最外层查询则被标记为:PRIMARYc.在SELECT或WHERE列表中包含了子查询,该子查询被标记为:SUBQUERYd.在FROM列表中包含

3、的子查询被标记为:DERIVED(衍生)e.若第二个SELECT出现在UNION之后,则被标记为UNION;若UNION包含在FROM子句的子查询中,外层SELECT将被标记为:DERIVEDf.从UNION表获取结果的SELECT被标记为:UNIONRESULTtype表示MySQL在表中找到所需行的方式,又称“访问类型”,常见类型如下:由左至右,由最差到最好a.ALL:FullTableScan,MySQL将遍历全表以找到匹配的行b.index:FullIndexScan,index与ALL区别为index类型只遍历索引树c.range:索引范围扫描,

4、对索引的扫描开始于某一点,返回匹配值域的行,常见于between、、等的查询range访问类型的不同形式的索引访问性能差异篇二:MySQL执行计划MySQL执行计划mysql的执行计划:explain显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。使用方法,在select语句前加上explain就可以了:如:explainselect*fromtest1EXPLAIN列的解释:table:显示这一行的数据是关于哪张表的type:这是重要的列,显示连接使用了何种类型。从最好到最差的连接类型为cons

5、t、eq_reg、ref、range、indexhe和ALLpossible_keys:显示可能应用在这张表中的索引。如果为空,没有可能的索引。可以为相关的域从WHERE语句中选择一个合适的语句key:实际使用的索引。如果为NULL,则没有使用索引。很少的情况下,MYSQL会选择优化不足的索引。这种情况下,可以在SELECT语句中使用USEINDEX(indexname)来强制使用一个索引或者用IGNOREINDEX(indexname)来强制MYSQL忽略索引key_len:使用的索引的长度。在不损失精确性的情况下,长度越短越好ref:显示索引的哪一列被

6、使用了,如果可能的话,是一个常数rows:MYSQL认为必须检查的用来返回请求数据的行数Extra:关于MYSQL如何解析查询的额外信息。将在表4.3中讨论,但这里可以看到的坏的例子是Usingtemporary和Usingfilesort,意思MYSQL根本不能使用索引,结果是检索会很慢extra列返回的描述的意义Distinct:一旦MYSQL找到了与行相联合匹配的行,就不再搜索了Notexists:MYSQL优化了LEFTJOIN,一旦它找到了匹配LEFTJOIN标准的行,就不再搜索了RangecheckedforeachRecord(indexma

7、p:#):没有找到理想的索引,因此对于从前面表中来的每一个行组合,MYSQL检查使用哪个索引,并用它来从表中返回行。这是使用索引的最慢的连接之一Usingfilesort:看到这个的时候,查询就需要优化了。MYSQL需要进行额外的步骤来发现如何对返回的行排序。它根据连接类型以及存储排序键值和匹配条件的全部行的行指针来排序全部行Usingindex:列数据是从仅仅使用了索引中的信息而没有读取实际的行动的表返回的,这发生在对表的全部的请求列都是同一个索引的部分的时候Usingtemporary看到这个的时候,查询需要优化了。这里,MYSQL需要创建一个临时表来

8、存储结果,这通常发生在对不同的列集进行ORDERBY上,而不是GR

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。