count的作用
1、count(expr)
用于返回select语句检索的行中expr值不为null的数量,返回结果是BIGINT类型。
2、expr的值可以是*、id(表中的任意字段)、常量
等值。
count(字段)、count(常量)、count(*)区别
1、count(常量)
和count(*)
表示的是直接查询符合条件的数据库表的行数。
2、count(字段)
表示的是查询符合条件的列的值不为NULL的行数。
3、count(*)
是SQL92定义的标准统计行数的语法https://baike.baidu.com/item/SQL92/6333507?fr=aladdin
4、MySql在InnoDB这个引擎中针对count(*)
做了优化,所以count(1)
和count(*)
在MySQL的InnoDB中是完全一样的,不存在谁更快。(现阶段一般也都是使用InnoDB的引擎,所以MyISAM的引擎情况没有去做深入了解)
总结:统计行数量该用count(*)
就用count(*)
,不会存在慢的问题,毕竟这可是标准语法。