Mysql 哪个更快:计数(不同列)与计数(*)。。。按列分组

Mysql 哪个更快:计数(不同列)与计数(*)。。。按列分组,mysql,count,distinct,Mysql,Count,Distinct,我使用的是MySQL,我已经读过好几次了,COUNT(*)通常比COUNT(Column)快 但是,我需要获得计数的不同的行。据我所知,我可以用两种不同的方式来实现这一点: a)选择计数(不同列). 或 b)选择计数(*)。。。按列分组 一般来说,哪个速度更快?如果它取决于,那么它取决于什么?SELECT COUNT(*)FROM table GROUP BY column返回按列分组的每个值的行数,而不是组数 SELECT COUNT(DISTINCT column)FROM table返回组

我使用的是MySQL,我已经读过好几次了,
COUNT(*)
通常比
COUNT(Column)

但是,我需要获得
计数
不同的行。据我所知,我可以用两种不同的方式来实现这一点:

a)选择计数(不同列).

b)选择计数(*)。。。按列分组

一般来说,哪个速度更快?如果它取决于,那么它取决于什么?

SELECT COUNT(*)FROM table GROUP BY column
返回按列分组的每个值的行数,而不是组数


SELECT COUNT(DISTINCT column)FROM table
返回组数(尽管您也可以使用
groupby
查询中的行数来获得此值)。

我认为您应该查看
SQL\u CALC\u FOUND\u ROWS
并停止使用
COUNT()
,除非确实需要。@Peter。看@nawfal,我很惊讶。但请记住,这是2008年的一个问题。。。事情本来可以改变很多。并始终使用SQL\u NO\u缓存benchmarking@Peter确认答案的评论来自2012年7月11日。你能提供一个例子说明这两者之间的区别吗,因为对于像我这样的非专家来说,这些描述有些让人困惑。谢谢@程序员如果
SELECT column FROM table
返回
5、6、5、7、5、6、5
,则
SELECT COUNT(*)FROM table GROUP BY column
返回
4、2、1
(或其变体),而
SELECT COUNT(DISTINCT column)FROM table
返回
3