【发布时间】:2012-12-24 03:17:49
【问题描述】:
我正在使用 MySQL,并且我多次读到 COUNT(*) 通常比 COUNT(Column) 快。
但是,我需要获得 distinct 行的 COUNT。据我了解,我可以通过两种不同的方式做到这一点:
a) SELECT COUNT(DISTINCT Column) ...
或
b) SELECT COUNT(*) ... GROUP BY Column
一般来说,哪个更快?如果它依赖,那么它依赖于什么?
【问题讨论】:
-
我相信你应该看看
SQL_CALC_FOUND_ROWS并停止使用COUNT(),除非真的需要。 -
@Peter 不需要。见stackoverflow.com/questions/186588/…
-
@nawfal 我很惊讶。但请记住,这是 2008 年的问题……事情可能会发生很大变化。并且始终使用 SQL_NO_CACHE 进行基准测试
-
@Peter 确认答案的评论来自 2012 年 7 月 11 日。