启用与分析
启用与分析
SET optimizer_trace = 'enabled=on';
SELECT * FROM appdb.orders WHERE user_id = 1 AND status = 2 LIMIT 10;
SELECT TRACE FROM information_schema.OPTIMIZER_TRACE\G
SET optimizer_trace = 'enabled=off';
-- 输出重点看:considered_execution_plans / best_plan_so_far / rejected| 适用 | EXPLAIN 看不出原因时 |
|---|---|
| 体积 | TRACE 字段很长,用 \G 或导出后 grep |
| 开销 | 只影响当前会话的语句,用完关闭 |
trace 里的 rows_estimation 与 cost 数字是理解「估算侧」为何选错的关键。