1、作用:
用于获取查询执行计划(即MySQL如何执行查询的解释)
2、用法:
explain + sql语句,
例如:
有数据库管理工具的,如Navicat,直接新建查询,在查询里执行语句,如:
或者运行命令,如:
3,分析返回的数据
ref: 体现"性能"的关键字段,性能由高到低,如下:
system > const > eq_ref > ref > range > index > all,至少达到range(具体情况具体分析,一般是这样的),all,就是查全表。
possible_keys: 可能用到的这张表的索引
key: 实际用到的索引
rows: 需要查询的行数
filtered: 目标数据行数占需要查询行数的比例(预估的,可能一个符合条件的数据都没有),目标数据行数 = rows x filtered%,如:目标数据行数 = 14502 x 33.33%
extra: 表明使用了什么查询,Using index(用表里面的索引了)、Using where(用了where过滤)这些ok,
但是如果是Using filesort(用了外部索引,就是按文件找)、Using temporary(用了临时表)建议再优化优化。
其他字段感兴趣自己查去吧~~
4,mysql优化语句,操作如下:
就是在命令界面,explain完了之后,再show warnings;
附:官方链接: https://dev.mysql.com/doc/refman/5.7/en/explain.html.