MySQL

EXPLAIN 的输出变成树了?切回表格用 FORMAT=TRADITIONAL

我本机装的新版 MySQL,explain_format 默认是 TREE,熟悉的表格不见了(8.0 默认仍是表格):

text
-> Filter: (tuser.age = 10)  (cost=9846 rows=9774)
    -> Table scan on tuser  (cost=9846 rows=97741)

想看传统表格:

sql
EXPLAIN FORMAT=TRADITIONAL SELECT ...;            -- 单条
SET SESSION explain_format = 'TRADITIONAL';        -- 本连接

几种格式怎么选:

  • TRADITIONAL:一表一行,看 type / key / key_len / rows / Extra,教程和文章大多用它。
  • TREE:看执行顺序。从缩进最深的那行读起,上一层向它要一行、加工一行。
  • JSON:信息最全,给工具用。
  • EXPLAIN ANALYZE:真的执行一遍,给出实际行数和耗时。前三种都不执行,cost 和 rows 只是估算,对不上时用它。
esc