Mysql中的straight_join

时间:2025-02-15 08:58:05

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一定要慎重,因 为部分情况下人为指定的执行顺序并不一定会比优化引擎要靠谱。