Mysql中的straight_join
- 1、什么是straight_join?
- 2、举栗子
- 3、需要注意的点
1、什么是straight_join?
straight_join功能同join类似,但能让左边的表来驱动右边的表,能改表优化器对于联表查询的执行顺序。
2、举栗子
select * from t2 straight_join t1 on t2.a = t1.a;
比如上面这个,如果我们事先知道t2表的数据量一定小于t1表的话,我们就可以使用上面的方式指定t2表为驱动表。
3、需要注意的点
1、straight_join只适用于inner join,并不适用于left join,right join。(因为left join,right join已经代表指 定了表的执行顺序)。
2、尽可能让优化器去判断,因为大部分情况下mysql优化器是比人要聪明的。使用straight_join一定要慎重,因 为部分情况下人为指定的执行顺序并不一定会比优化引擎要靠谱。