使用左外部联接和OR子句的慢速mysql查询
我有以下疑问使用左外部联接和OR子句的慢速mysql查询,mysql,performance,left-join,Mysql,Performance,Left Join,我有以下疑问 SELECT * FROM video LEFT OUTER JOIN comments ON (video.id = comments.video_id) WHERE comments.posted_by_user = 1234 OR video.id in (1, 2, 3, 4) 我有video.id评论的索引。由用户发布和评论.video\u id。然而,mysql会对视频表进行全表扫描,这需要花费很多时间。使用UNION而不是LEFT-OUTER-JOIN可以加快速度,
SELECT * FROM video LEFT OUTER JOIN comments ON (video.id = comments.video_id)
WHERE comments.posted_by_user = 1234 OR video.id in (1, 2, 3, 4)
我有video.id
评论的索引。由用户发布和评论.video\u id
。然而,mysql会对视频表进行全表扫描,这需要花费很多时间。使用UNION
而不是LEFT-OUTER-JOIN
可以加快速度,但不是一个选项,因为查询是由django ORM生成的
为什么或
子句和左外部联接的组合会阻止mysql使用索引,我如何才能阻止它