Skip to main content

db-join

📅 2026-04-18 ✏️ 2026-04-18 CS
No related notes

1 · db-join#

S 什么场景 C 什么冲突 Q 什么问题 A 回答问题

JOIN / 多表执行计划

已讲:为什么多表 EXPLAIN 会有多行 已讲:驱动表为什么关键 内层探测贵不贵:主键查、二级索引查、范围查、扫表被放大后的差别 rows 在 join 里怎么乘起来看:为什么单行看不大,多行合起来很吓人 Extra 在 join 里的信号:Using join buffer、Using filesort、Using temporary 分别在暗示什么 join 键为什么必须有索引:没有 join 索引时计划会怎么劣化 两表 join 的完整读法:把两行 EXPLAIN 翻译成一句人话 三表及以上怎么读:为什么每多一张表,放大链条会更复杂 LEFT JOIN / INNER JOIN 对计划的影响:谁能重排,谁受约束 排序、分组叠加 join 时怎么看:慢点常常不在 join 入口,而在 join 之后 典型坏计划案例拆解:大表驱动大表、内层无索引、范围 join 被放大 典型好计划案例拆解:小结果驱动、内层主键探测、覆盖索引承接 EXPLAIN 到优化动作的映射:看到什么信号,通常该改什么 join 分析总模板:以后拿到多表 SQL,按固定顺序判断