百木园-与人分享,
就是让自己快乐。

MySQL-执行计划

上官网看执行计划文档释义,移步

此部分在MySQL官方文档中的结构属于优化(Optimization)-理解查询执行计划(Understanding the Query Execution Plan)。

 

此部分一共包括5个部分内容:

1,使用explain优化查询

2,explain输出内容释义

3,扩展explain输出格式

4,获取命名连接的执行计划信息

5,预估查询性能

 

一. 使用explain优化查询

explain适用于select,delete,update,insert,replace语句

对于select语句,可以通过show warnings显示额外信息

 

辅助分区表的查询,这部分请参阅官网Obtaining Information About Partitions。

 

二. explain输出内容释义

 官网给了完整的释义,翻译就是:

id:查询标识符,id相同-按顺序执行;id不同-数字越大的先执行。在联合查询(union)中可以为空。

select_type:查询类型,主要分类有:

        SIMPLE  简单查询,没有用联合或子查询

        PRIMARY  查询中有子部分,最外围的叫primary

        含UNION关键字    联合查询

        SUBQUERY    子查询

        DERIVED   from列表中包含的子查询

        MATERIALIZED    subquery的一种,物化子查询

table:表名称

partitions:表分区信息

type:连接查询类型(表连接,如left join,right join,多表连接,复杂查询等等)

         从好到坏的顺序为:system,const,eq_ref,ref,fulltext,ref or null,index merge,unique subquery,index subquery,range,index(索引扫描),ALL(全表扫描)

possible_keys:可能使用的索引

key:实际使用的索引

key_len:索引中使用的字节长度,长度越短越好

ref:索引的哪一列被使用

rows:预估查询的行数

filtered:条件过滤后,留存记录数的百分比。100即是没有过滤,比如id=1这样的条件;数值越靠近100(越大)越好。

Extra:附加信息,解析查询的额外信息

 

三. 扩展explain输出格式

和show warnings配合使用

explain select * from city;
show warnings;

特殊标记在这里。

 

四. 获取命名连接的执行计划信息

举例:

SELECT CONNECTION_ID();
EXPLAIN FOR CONNECTION 750;

 

show processlist;
explain for connection 771;

 

五. 预估查询性能

通过计算磁盘寻道来预估查询性能。

计算key_len的值,

 

 

 

 参考:

 


作者:hangwei

出处:http://www.cnblogs.com/hangwei/

关于作者:专注于开源平台,分布式系统的架构设计与开发、数据库性能调优等工作。如有问题或建议,请多多赐教!

版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。

如果您觉得文章对您有帮助,可以点击文章右下角“推荐”一下。您的鼓励是作者坚持原创和持续写作的最大动力!


来源:https://www.cnblogs.com/hangwei/p/16994295.html
本站部分图文来源于网络,如有侵权请联系删除。

未经允许不得转载:百木园 » MySQL-执行计划

相关推荐

  • 暂无文章