写了个left join语句,如下:
select A.c,B.d
from A
left join B
on A.a = B.a
and A.b = B.b
对A表的a, b字段和B表的a, b字段都建了联合索引, 发现on后的条件怎么也走不到索引
查到有个说法是只有where后的语句可以走到索引,试着改为(+)
select A.c,B.d
from A, B
where A.a = B.a(+)
and A.b = B.b(+)
一样走不到索引。
查到有说法是left join和 (+)其实一样一样的。
会不会测试环境 的数据量太小了?
果然是,测试环境只有100条数据,生产上数据量为100万,在生产上就生效了。