1. 定义
    count1:常见计数方式,统计目标表的记录行数。括号里表示一个固定值,可以是任何固定的数字字符,是个常量。
    count*:常见计数方式,统计目标表的记录行数,与count1)执行结果相同,但是执行会根据目标表的不同进行优化。
    count(列名):常见计数方式,统计目标表某一列的非空记录数。它会统计指定列中不为NULL的行数,忽略NULL值。
    Count(distinct(列名)) :其实是 count(列名) + distinct 的结果集,指定列不为NULL,并且在字段值重复的情况下只统计一次
  2. 总结
    如果在开发中确实需要用到count()聚合,那么优先考虑count(),因为mysql数据库本身对于count()做了特别的优化处理。
    有主键或联合主键的情况下,count(*)略比count(1)快一些。
    没有主键的情况下count(1)count(*)快一些。
    如果表只有一个字段,则count(*)是最快的。
    使用count()聚合函数后,最好不要跟where age = 1;这样的条件,会导致不走索引,降低查询效率。除非该字段已经建立了索引。使用count()聚合函数后,若有where条件,且where条件的字段未建立索引,则查询不会走索引,直接扫描了全表。
    count(字段),非主键字段,这样的使用方式最好不要出现。因为它不会走索引.

 

posted on 2025-04-02 14:31  mark_cr1990  阅读(25)  评论(0)    收藏  举报