精讲 Select count(*) Select count(1) Select count(字段) 的区别

 

首先要知道COUNT(1) 和 COUNT(*)表示的是直接查询符合条件的数据库表的行数,而COUNT(列名/字段)表示的是查询符合条件的列的值不为NULL的行数。

所以这里得出一个结论:

COUNT(1)和COUNT(*):包括对NULL的统计

COUNT(字段):不包括对NULL的统计

其次有很多关于COUNT(1)和COUNT(*)性能不同的说法(COUNT(1)比COUNT(*)性能好),但实际上,这两种查询方式在实现上没有区别,而且效率一样。

总结:

COUNT(1)和COUNT(*):包括对NULL的统计 ;COUNT(字段):不包括对NULL的统计。

COUNT(*)和COUNT(1)实现上没有区别,而且效率一样,但是COUNT(字段)需要进行字段的非NULL判断,所以效率会低一些。

你可能感兴趣的:(数据库Mysql,数据库,mysql,java,sql,大数据)