SQL组合查询及先后顺序对效率的影响

在SQL跨表组合查询存在效率问题,举例比如

delete from media_source where movie_id in ( select media_id from media where type=2 ) and origin = 3;

delete from media_source where origin = 3 and movie_id in ( select media_id from media where type=2 );

的效率是不一样的。

若origin=3的情况下media_source表中数据量相对比 select media_id from media where type=2大,那么写在后面比写在前面的效率很大。

总的来说,组合查询就要查询结果比较少的查询放在前面,有点像linux的管道了。虽然这里逻辑上是and的关系,但是查询还是有先后顺序。

你可能感兴趣的:(sql)