第19章: OzExplain - 执行计划树与索引顾问
概述: 本章介绍如何使用 OzExplain 将复杂的文本执行计划转化为色彩鲜明的操作节点树,捕获统计信息失真风险并获取索引优化指导。
本章内容:
19.1 可视化执行计划树
在编辑器中选中查询语句并按下 Cmd + E,OzExplain 即刻将该语句的 EXPLAIN 计划分解为节点树:
- 红色节点 (性能瓶颈): 全表扫描 (Full Table Scan /
ALL)、磁盘临时表 (using temporary) 或磁盘外部排序 (filesort) 等低效算子。 - 绿色节点 (高效通道): 命中主键 (
const、eq_ref) 或高效 B-Tree 索引的访问路径。
19.2 预估行数 vs 实际行数对比分析
在支持分析模式的数据库中(如 MySQL 的 EXPLAIN ANALYZE 或 MariaDB 的 ANALYZE 语法),系统将自动对比优化器预估开销行数与实际扫描行数。
当偏离倍数超过 3 倍时,节点将弹出警告信息:
ANALYZE TABLE orders; -- 实际扫描行数 (450,000) 超过优化器预估 (1,000) 达 450倍
提示: 该警告表明元数据统计信息已经严重陈旧,强烈建议立即针对该表运行
ANALYZE TABLE以校准优化器。
19.3 智能索引设计推荐
当检测到高成本全表扫描(ALL)时,OzExplain 会提供索引构建模板:
CREATE INDEX idx_orders_opt ON orders (<过滤字段>);
请结合实际查询负载核定推荐的字段组合,在安全防护门确认下安全生效。