SQL中,多表连接查询和不相关子查询从查询效率上来说,哪种查询的效果更好?为什么 ?

2024-11-25 21:34:27
推荐回答(3个)
回答1:

一般说不相关子查询效率高些,但也要看你的SQL语句怎么写。
如果不相关子查询的语句查询的数据量较大,那效率上和多表连接查询差不多,如:
select * from a where a.age>(select max(age) from b)
如果子查询仅仅查询符合逻辑存在判断的语法,那效率远远高于连接查询,如:
select * from a where exists(select 1 from b where rownum<=1)

回答2:

不相关子查询效率高些 原因是多表连接查询时每条记录都要匹配,这样会耗费很多时间和不必要的内存。我个人观点

回答3:

多表连接比子查询效率更高,子查询回溯的层次多,算法上复杂一些