Mysql的count函数用于统计符合条件的记录数,常用的方式有:
1、count(*)
2、count(1)
3、count(id)
4、count(col)
首先需要明确一点:count函数对于返回的结果集,一行行地判断,不会统计null值。
初学者经常会纠结到底应该使用哪种方式做计数,实际上这四种计数方式是有很大差别的。
count()的原理:
count(*)
遍历整张表,不需要取出数据来计算,直接按行累计。
count(1)
遍历整张表,不需要取数,按行计数。
count(id)
遍历整张表,取出id,按行计数。
count(col)
遍历整张表,取出col,如果字段定义不为null,取出col之后,按行计数。如果字段定义可以为null,循环对col进行判断是否为null值,再计数。
这四种计数方式遍历整张表的方式也有不同:
所以,性能上排序为:count(*) > count(1) > count(id) > count(col)。
在不考虑是否对null计数得区别的前提下,性能优化的方向,除了使用count(*) 外,就是适当使用小的二级索引。
本文地址:https://blog.csdn.net/hhhzua/article/details/107651084
如对本文有疑问, 点击进行留言回复!!
在Ubuntu/Linux环境下使用MySQL开放/修改3306端口和开放访问权限
ORM框架Peewee(高级连接)peewee连接池、主从、重连、ssh连接
记一次Mysql主从复制延迟,Waiting for dependent transaction to commit
网友评论