对比例子
对比例子
EXPLAIN SELECT * FROM appdb.orders
WHERE user_id = 999 AND status = 1;
-- 期望:rows 小、filtered 高
-- 反例:rows=1500000, filtered=10.00 => 估算扫 150 万行才留下 15 万行| rows | 估算扫描行数(统计信息推导) |
|---|---|
| filtered | 该步条件过滤后比例(0-100) |
| 联动 | 连表右侧 filtered 低 => 被驱动表放大扫描 |
统计信息陈旧会让 rows 严重偏低或偏高:大改数据后先 ANALYZE TABLE。