plsql中left join连接子查询语句会不会影响速度,还是分开查询速度更快?
比如select*from表1leftjoin(sql2)leftjoin(sql3),这样会不会影响查询的速度,sql2,sql3分别查询会不会速度更快?能快多少?...
比如select * from 表1 left join (sql2) left join (sql3),
这样会不会影响查询的速度,sql2,sql3分别查询会不会速度更快?能快多少? 展开
这样会不会影响查询的速度,sql2,sql3分别查询会不会速度更快?能快多少? 展开
3个回答
展开全部
第一种效率高,子查询是不会有索引的,并且以结果集作为子查询更慢
SELECT * FROM TABLEA A LEFT JOIN TABLEB ON A.ID = B.ID AND B.NAME = '123'
如果数据量大的话,想要效率更高把*用对应的字段代替
SELECT * FROM TABLEA A LEFT JOIN TABLEB ON A.ID = B.ID AND B.NAME = '123'
如果数据量大的话,想要效率更高把*用对应的字段代替
追问
谢谢你的回答,是这样的,sql2,sql3,查询出来的数据量很少的,有无索引无所谓,其实我想问的是,sql1 left join sql2 left join sql3这样联合查询的速度与单独的sql1,sql2,sql3分别查询在最后的速度上会不会存在很大的差异?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2017-03-17
展开全部
不理解为什么要单独运行sql2与sql3,难道这两个的记录集取出来后你还要手工再运算一次吗?这样不是效率更低?
left join是用关键字对几个记录集进行匹配,分开几个查询单独运行只是各自的记录集,没有关联关系,
left join是用关键字对几个记录集进行匹配,分开几个查询单独运行只是各自的记录集,没有关联关系,
追问
我的意思是表1获取到数据之后,再次和sql2,sql3的结果进行连接,sql2,sql3的结果并不多,但是获取的时间比较久.
我想的是单独分开执行每个sql,最后获取的数据再连接快一些还是这样直接连接,一个sql完成操作.
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼主发现最后哪种比较快了吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询