SQL Count(1) vs Count(*) - 效率与准确性比较
在实际使用中,select count(1) 和 select count(*) 基本等价,都是用来统计行数的。不过,有以下几点不同:
-
效率上,
select count(1)的效率会稍微高一些,因为不需要对具体的列进行计算,只需要判断是否有值即可。 -
select count(*)会统计所有列,而select count(1)只统计第一个列。如果表中有大量的列,使用select count(*)可能会增加一些额外的计算时间和内存消耗。 -
在某些特殊情况下,使用
select count(1)可能会更准确。例如,如果表中有一列包含了 NULL 值,使用select count(*)会统计所有行数,包括 NULL 值,而使用select count(1)则不会统计 NULL 值。
因此,一般来说,建议使用 select count(1) 来统计行数。
原文地址: https://www.cveoy.top/t/topic/ne4N 著作权归作者所有。请勿转载和采集!