count(1)
:这是一种常用的计数方法,count(1)
是一个固定值,表示计算结果集的行数。它在执行时不需要关心具体的列值,只是简单地统计行数。count(*)
:这也是一种常见的计数方法,count(*)
表示计算结果集的行数,与count(1)
功能相同,但在某些数据库中可能会稍微不同的执行优化。count(column)
:这种方式是计算指定列的非空值数量。它会统计指定列中不为NULL的行数,忽略NULL值。
区别与执行效率:
- 区别:
count(1)
和count(*)
在功能上是相同的,都是用于统计行数。而count(column)
则用于统计特定列中非空值的数量。 - 执行效率:在绝大多数数据库中,
count(1)
和count(*)
的执行效率几乎是相同的,因为它们都只关心行数而不需要考虑具体的列值。而count(column)
可能会比较慢,因为它需要检查每一行的指定列是否为NULL。
总之,count(1)
和 count(*)
通常会更常用,因为它们的执行效率较高,不涉及对具体列值的处理。而 count(column)
适用于统计特定列中的非空值数量。在实际使用时,可以根据情况选择适合的方式。