问题:
我要统计数据库表15张表的条数,以下两种方案哪个执行的快一些:
方案一:
执行15次统计SQL:
select count(1) from 表1 where条件
select count(1) from 表2 where条件
.........
select count(1) from 表15 where条件
方案二:
使用一条SQL一下子统计出15张表的条数:
select
(select count(1) from 表1 where条件) t1_count,
(select count(1) from 表2 where条件) t2_count,
........
(select count(1) from 表15 where条件) t15_count,
回答1:
效率应该是差不多的。主要是看楼主用在什么地方,如果查询次数多的话 建议采用第一种。这样数据库连接次数多一点但是相对来说连接时长要少一些,反之就是查询次数少一点,但是数据库连接时长占的多一点
回答2:
换汤不换药
回答3:
如果考虑网络IO成本的话,可能方案2更好
回答4:
赞同二楼,考虑到可能存在拼sql导致无法重用缓存计划,可以考虑多条sql语句,多个结果集。
回答5:
我认为还是方案二好一点,方案一会取重复的取数据库连接池拿连接,如果连接都被使用的情况下,会创建连接,重复这个动作,还是很耗时间的。
回答6:
你觉得呢?