观察与纠偏
观察与纠偏
EXPLAIN SELECT ... FROM small_filter_table s
JOIN big_table b ON b.id = s.big_id;
-- 观察输出顺序:s 在前为驱动表
-- 临时强制顺序(谨慎):
SELECT STRAIGHT_JOIN ... FROM s JOIN b ON b.id = s.big_id;| 理想 | 驱动表小(rows 小),被驱动表 eq_ref/ref |
|---|---|
| 异常 | 大表驱动 + 被驱动表 ALL + join buffer |
| 治理 | 补统计、改写法、最后才调 optimizer hint |
连表顺序是成本优化的结果而非原因;被驱动表缺索引才是根本问题。