EXPLAIN
首先祭出官方文档(这是5.7的,请自行选择版本):
Understanding the Query Execution Plan
英文不想看,就看这篇吧:
****全网最全 | MySQL EXPLAIN 完全解读****
PROFILING
PROFILING在未来版本会废弃,不建议使用。官方文档:
****SHOW PROFILE Statement****
官方推荐的替代方式:
Query Profiling Using Performance Schema
如果安装了navicat(版本15,其他版本没测试),直接执行SQL,在结果旁边的剖析,就是结果。
OPTIMIZER TRACE
- 查看是否开启,默认是禁止的。
SHOW VARIABLES LIKE 'optimizer_trace';
enabled:是否开启
one_line:是否在一行输出
-
开启
SET OPTIMIZER_TRACE="enabled=on";
- 执行想要调试的SQL
-
查看上一个查询的优化过程
SELECT * FROM information_schema.OPTIMIZER_TRACE;
注意:以上过程请不要使用navicat,否则OPTIMIZER_TRACE表是没有数据的。
这是官方文档描述:
这是官方案例:
英文不想看,就看这篇吧:
****MySQL 调优 | OPTIMIZER_TRACE详解****