第 16 章 神兵利器——optimizer trace 表的神器功效

16 阅读1分钟

optimizer trace 功能可以让我们方便地查看优化器生成执行计划的整个过程。

SHOW VARIABLES LIKE 'optimizer_trace';

在这里插入图片描述

列名描述
QUERY查询语句
TRACE优化过程的JSON文本
MISSING_BYTES_BEYOND_MAX_MEM_SIZE优化过程文本超过最大长度限制后被忽略的字节数
INSUFFICIENT_PRIVILEGES有无权限查看优化过程
# 1. 打开optimizer trace功能 (默认情况下它是关闭的):
SET optimizer_trace="enabled=on";
# 2. 这里输入你自己的查询语句
SELECT ...;
# 3. 从OPTIMIZER_TRACE表中查看上一个查询的优化过程
SELECT * FROM information_schema.OPTIMIZER_TRACE;
# 4. 可能你还要观察其他语句执行的优化过程,重复上边的第2、3步
...
# 5. 当你停止查看语句的优化过程时,把optimizer trace功能关闭
SET optimizer_trace="enabled=off";