哪个更快: COUNT(DISTINCT Column) 与 COUNT(*) ... GROUP BY Column

Pro*_*irl 4 mysql count distinct

我正在使用 MySQL 并且我已经阅读了几次,这COUNT(*)通常比COUNT(Column).

但是,我需要得到COUNT不同行。据我了解,我可以通过两种不同的方式做到这一点:

a) SELECT COUNT(DISTINCT Column) ...

或者

b) SELECT COUNT(*) ... GROUP BY Column

一般来说,哪个更快?如果要看,那还有什么是依赖

Nei*_*eil 5

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

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

  • @Programmer 如果`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`。 (2认同)