哪个更好的mysql组计数或计数

时间:2012-12-19 02:32:19

标签: mysql count

多选

select count(id) from table where name='a'
select count(id) from table where name='b'

一组选择

select name,count(id) from table where name in('a','b') group by name;

哪一个更好?

4 个答案:

答案 0 :(得分:1)

我说在这样一个简单的例子中group by语句会执行相同或更好,并且可能更好,因为如果你运行两个不同的select语句需要分组,那么性能就会受到影响处理您的信息。

答案 1 :(得分:1)

通常,最好准备和执行一个SQL语句而不是两个语句。

在资源方面它“更好”,因为将语句发送到MySQL服务器,MySQL服务器解析语句,准备执行计划,然后执行计划,然后返回结果集。在客户端,也有一些家务管理费用。

虽然单个请求的应用程序整体响应时间不会有太大差异,但真正的问题是MySQL服务器的可扩展性。

另一方面,如果单个语句比两个单独的语句更加耗费资源,那么首选运行两个单独的语句。

在您的情况下,如果没有关于模式和行分布的任何信息,那么获得两个计数的一个语句很可能是“更好”的方法。

(一个语句存在问题,它可能返回零,一行或两行;而两个单独的语句将返回1行。(因此在客户端处理结果集会有所不同。)

答案 2 :(得分:0)

我更喜欢使用GROUP的第二个,因为您只需要对服务器执行一次。

答案 3 :(得分:0)

在这种情况下使用GROUP BY总是更好,如果您只是想将它用于特定名称,请选择个人,即第一个

但是,如果您想获得所有名称的计数,您必须选择 GROUP BY ,因为这样可以简化您的代码以及服务器上的性能。