简介
step 1
使用explain 查看执行计划, 5.6后可以加参数 explain format=json xxx 输出json格式的信息
step 2
使用profiling详细的列出在每一个步骤消耗的时间,前提是先执行一遍语句
#打开profiling 的设置SET profiling = 1;SHOW VARIABLES LIKE '%profiling%';#查看队列的内容show profiles;#来查看统计信息show profile block io,cpu for query 3;
step 3
Optimizer trace是MySQL5.6添加的新功能,可以看到大量的内部查询计划产生的信息, 先打开设置,然后执行一次sql,最后查看information_schema.OPTIMIZER_TRACE的内容
#打开设置SET optimizer_trace='enabled=on';#最大内存根据实际情况而定, 可以不设置SET OPTIMIZER_TRACE_MAX_MEM_SIZE=1000000;SET END_MARKERS_IN_JSON=ON;SET optimizer_trace_limit = 1;SHOW VARIABLES LIKE '%optimizer_trace%';#执行所需sql后,查看该表信息即可看到详细的执行过程SELECT * FROM `information_schema`.`OPTIMIZER_TRACE`;
