mysql查询优化count(*)-查询记录总条数(一)

本文探讨了在MySQL中使用count(*)和count(字段名)查询记录总数的区别,强调了count(*)可能导致的性能问题。在面对大量数据时,通过利用自增主键的特性,提出了使用max(id)-min(id)+1或者max(id)作为优化策略,以显著提升查询效率。
摘要由CSDN通过智能技术生成

计算表记录总量最直接的方法就是使用count()

比如:select count(*) from 表名;

也有人喜欢这么写:

select count(字段名) from 表名;

这两种写法都可以得到结果,不过效果略有不同。

count(*)一定返回的是表记录总量

count(字段名)返回的是该字段不为null值的记录总量。它有可能跟count(*)相等,也可能不等。

所以要慎用count(字段名)这种写法。

在表记录较多的情况,count(*)执行时间会较长。例如我公司有一张表内数据1亿条,执行时间47秒。

在生产环境这非常可怕。因为这一慢查询的执行,可能引起其他sql的效率低下,有可能引起链式反应像核爆炸那样耗尽服务器资源。

我们尽量要在生产环境避免这类语句执行。如果一定要,那么在满足一定条件下可以使用下面的小技巧来优

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

乐大师

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

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

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

打赏作者

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

抵扣说明:

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

余额充值