概述
在业务中经常会优化一些mysql的慢查询,通常都是使用explain去查看分析,检查扫描行数和索引的命中情况;
但是在具体索引的选择上,explain结果中并没有直接展示出来;
此时可以开启mysql的追踪优化器Trace功能;
mysql的追踪优化器Trace
SET session optimizer_trace="enabled=on"; -- 在当前session中打开追踪优化器
SET session optimizer_trace_max_mem_size = 1048576; -- 设置为1MB,根据实际情况调整
-- 和业务查询一起执行,查询mysql的索引比较
select * from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
截图中可以看到mysql在比较最合适的索引的依据