MySQL的explain是各种执行计划选择的结果,如果想看整个执行计划以及对于多种索引方案之间是如何选择的?
MySQL5.6中支持这个功能,optimizer_trace
这个是mysql的参数,默认是关闭的
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
具体这么使用呢?
需要设置如下:
1、开启optimizer_trace,默认是关闭的
1 |
|
2、设置optimizer_trace内存的大小
1 |
|
3、explain查询语句
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
4、查找对于的结果
1 |
|
这个表包括4个字段
1 2 3 4 5 6 7 8 9 |
|
主要看TRACE字段,是json串,json解析结果如下:
包括join_preparation,join_optimization,join_explain
join_preparation
1 |
|
这个是使用extend看到的结果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
[参考资料]
1、http://guilhembichot.blogspot.com/2011/09/optimizer-tracing-how-to-configure-it.html