count(*) count(1) count(id) count(字段名)
总结
- count() :innoDB引擎遍历表,但不取值,count()肯定不是null,按行累加
- count(1):innoDB引擎遍历表,但不取值,server层对于返回的每一行放1个数字1进去,肯定不是null, 按行累加
- count(id主键) : InnoDB引擎会遍历整张表,把每一行行的id值全部取出来,返回给server层,server层拿到id后,判断是不可能为空的,就按行累加。
- count(字段) 1.如果这个字段是定义为not null的话,一行行地从记录里面读出这个字段,判断不能为null,按行累加 2.如果这个字段定义允许为null的话,判断到有可能是null,还要把值取出来在判断一下,不是null才累加。