使用explain分析执行结果
Explain详解
参考这篇文章,获得trace的分析结果。
注意:在navicat中执行的时候,一次性将两条SQL(包含获取trace结果的那条sql)选择执行。
MySQL - 使用trace工具来窥探MySQL是如何选择执行计划的
注意:
- MISSING_BYTES_BEYOND_MAX_MEM_SIZE:由于优化过程可能会输出很多,如果超过某个限制时,多余的文本将不会被显示,这个字段展示了被忽略的文本字节数。
- INSUFFICIENT_PRIVILEGES:表示是否没有权限查看优化过程,默认值是0,只有某些特殊情况下才会是1,我们暂时不关心这个字段的值。
如果没有使用到正确的索引,不建议使用 force index的方式来优化。可以看看是否能通过调整 order by方式。
案例:
select user_id, field_b, field_c, created_time from table_A
where user_id = "****"
order by created_time desc
如果有比较好的索引 (user_id + create_time )没有使用到,可以试试
调整成
select user_id, field_b, field_c, created_time from table_A
where user_id = "****"
order by user_id, created_time desc
参考文章:
- https://www.rsthe.com/archives/mysqloptimizertrace
文章评论