翼度科技»论坛 编程开发 mysql 查看内容

MySQL-执行计划

8

主题

8

帖子

24

积分

新手上路

Rank: 1

积分
24
上官网看执行计划文档释义,移步
此部分在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的值,

 
 

 
 参考:

 

来源:https://www.cnblogs.com/hangwei/p/16994295.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具