当我们在sql中用联合查询的时候,mysql内部机制优化中用于联合驱动的驱动表可能不是我们想要的,就是mysql选 错了驱动表,这样可以用straight_join 这个来强制mysql使用那个表做为驱动表。
如:
explain SELECT DATE(practicetime) date_time,COUNT(DISTINCT a.userid) people_rows
FROM USER b straight_join test_log a
WHERE a.userid=b.userid AND b.isfree=0 AND LENGTH(b.username)>4
GROUP BY DATE(practicetime)\G;