MySQL count函数

本文详细介绍了MySQL中COUNT函数的不同使用方式,包括count(*)、count(列名)、count(1)及count(distinct列名),并解释了MyISAM引擎如何通过缓存表的总行数来加速count(*)查询,尤其是在不带where条件的情况下。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在MySQL中,count一般有以下使用方式。
count(*): 查询总的行数,null值也被计算在内
count(列名):查询某一列的行数,null值不被计算在内
count(1):查询总行数,null值被计算在内
count(distinct 列名):计算非null且不重复的行数

另外一点:myisam引擎很容易获得总行数的统计。查询速度变得更快。因为myisam存储引擎已经存储了表的总行数。
应该是每次新增加一行,这个计数器就加1。英文资料是这样子说的:
On MyISAM, doing a query that does SELECT COUNT(*) FROM {some_table}, is very fast, since MyISAM keeps the information in the index
也就是说,把表的总数缓存在索引中了。
注意一点:myisam存储引擎的表,count(*)速度快的也仅仅是不带where条件的count。这个想想容易理解的,因为你带了where限制条件,原来所以中缓存的表总数能够直接返回用吗?不能用。这个查询引擎也是需要根据where条件去表中扫描数据,进行统计返回的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhengjihao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值