EXPLAIN执行计划详解(下):高级分析

一、ref - 索引引用 1.1 含义 显示索引查找使用的列或常量。 -- 常量查询 EXPLAIN SELECT * FROM users WHERE id = 10; -- ref: const -- JOIN查询 EXPLAIN SELECT * FROM orders o JOIN users u ON o.user_id = u.id; -- ref: database.o.user_id(orders表的user_id列) 二、rows - 扫描行数 2.1 预估行数 EXPLAIN SELECT * FROM users WHERE name = '张三'; -- rows: 100(预估扫描100行) 注意:是估算值,不是精确值。 2.2 优化目标 rows越小越好 - ✅ rows < 100:良好 - ⚠️ rows < 10000:可接受 - ❌ rows > 100000:需优化 三、filtered - 过滤百分比 3.1 含义 经过WHERE过滤后,剩余记录的百分比。 EXPLAIN SELECT * FROM users WHERE name = '张三' AND age = 20; -- rows: 1000 -- filtered: 10% -- 最终:1000 * 10% = 100行 3.2 计算 实际返回行数 ≈ rows * (filtered / 100) 四、Extra - 额外信息(重要) 4.1 Using index(覆盖索引) EXPLAIN SELECT id, name FROM users WHERE name = '张三'; -- Extra: Using index(覆盖索引,最优) 含义:只需扫描索引,无需回表。 ...

2025-11-20 · maneng

如约数科科技工作室

浙ICP备2025203501号

👀 本站总访问量 ...| 👤 访客数 ...| 📅 今日访问 ...