当我们在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;

posted on 2013-05-09 16:42  统一B界  阅读(358)  评论(0编辑  收藏  举报