最近在处理一个外连接与两表内连接查询过于缓慢的问题, 一个明显的对比是外表进行内连接的耗时极短。
本文对该场景和问题的发生做分析。
MySQL :: MySQL 5.7 Reference Manual :: 8.2.1.7 Nested Join Optimization
- create table b(b1 int, b2 varchar(2), primary key(b1)) engine=tianmu;
-
- create table a(a1 int, a2 varchar(2), foreign key(a1) references b(b1)) engine=tianmu;
-
- create table c(c1 int, c2 varchar(2)) engine=tianmu;
- insert into a values(1, 'a1');
-
- insert into a values(3, 'a3');
-
- insert into b values(1, 'b1');
-
- insert into b values(2, 'b2');
-
- insert into b values(3, 'b3');
-
- inser