其实我一开始也不清楚但是手頭正好有大表,于是自己动手试了试实验表的数量级为3亿,这是一般实际项目中能涉及到的最大数量级了
实践结果表明二者耗费是等哃的。但是过程实际上是存在差别的
首先我们可以排除两种方法括号外的耗费。因为无论是select sum 还是 select count(*) 都基本不占用多少资源大部分资源都被括号里面的sql所占用了。
你的第一种方法相当于分别计算两次select count(*) as tmpcount from tab 这个操作然后最终耗费时间相当于两次操作的计算之和。
不过因为实际无論是第一种还是第二种本质上都是遍历两个表。所有即便第一种耗费为600+400=1000第二种耗费为1000,两者效率依然是一样的
不知道你是要得到一個什么样的结果。你这里两个查询得到的结果是不同的你第一个查询得到的是两个数据,而第二个查询得到的只有一个数据显然你的查询时写错了,按你的大概意思是否是要得到两个表中数据相同的的条数?第二个查询时对的第一个不对。