我有一种情况,我希望按类别返回数据库中的成员数我总共有6个类别,大约有15,000名成员。
因此,最好使用“select count(*)”之类的东西单独查询数据库,或者最好返回所有记录,只返回category列,然后查询每个数据结果表。 6个类别来计算。
第一种方法将db查询限制为1,但返回更多必须进一步处理的数据,
第二种方法查询数据库六次,但通过较少的数据提供结果,无需进一步处理。
我想我在数据库引擎中要求的更快或是.net?我正在使用带有.net4的sqlserver 2008
是否有任何最佳做法或理由让人知道为什么我应该使用一种方法而不是另一种方法?
由于
答案 0 :(得分:2)
我理解你只需要分类和计数。所以你可以做一次查询,如下所示。
SELECT CATEGORY, COUNT(CATEGRORY) TOTAL_COUNT
FROM TABLE
GROUP BY CATEGORY
答案 1 :(得分:0)
在你有一个小组的时候,查询数据库6次似乎不是一个好主意。更不用说您是否需要将类别加入类别表。此外,它还有一个缺点,你必须硬编码类别或查询表JUST才能获得类别(如果没有单独的查找类别表)。如果你查询数据库以获得6个类别的dinamically ...你会怎么做?选择明显?有一群人?
在任何情况下,只是为了获得所有行中的类别,这将是一个沉重的查询。所以,如果你要执行繁重的查询,至少要以最简单的方式进行:
select category, count(*) CategoryCount from table
group by category