执行一复杂的SQL语句效率高,还是执行多少简单的语句效率高

2020-08-26 18:11发布

问题:

我要统计数据库表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:

你觉得呢?