测评结果_count(*) vs limit 1,效率测评,结果和你想的一样吗

这篇博客通过多轮测试对比了使用`count(*)`和`limit 1`在不同数据量下的执行效率。在InnoDB引擎下,随着数据量的增加,`limit 1`的执行速度逐渐优于`count(*)`,特别是在大量数据的情况下,优势更为明显。
摘要由CSDN通过智能技术生成

两种SQL的写法

count()

SELECT count(*) FROM table 

limit 1

SELECT 1 FROM table LIMIT 1复制代码

测评前提

引擎 : INNODB

表结构

先来看下表结构,并没有设置太复杂的。

ff75c395c27b5942edeba9d2e530c467.png

explain

聪明的大家都会先explain一下,那就给大家看下。

limit 1

83c83cfb8fd2bb41f780600259f6573b.png

count

dd432d7a0ae5100e1c81c375b2f598d4.png

是的,相信大家看出来了,并没什么区别。那就实际数据开搞吧。

测评开始

第一轮测试

先插入它1000条数据看下。

count

f3c51f549b865674faf489d7ed0ff141.png

limit 1

0614f58922543e771757af8b498da830.png

第二轮测试

继续插入1万条数据。

count

9c14a284cf8d8be12ce1f7332cfc2cee.png

limit 1

8be9eec226d86ca5df4483c89a43cd4c.png

经过第二轮的测试感觉时间差不多了。继续测。

第三轮测试

继续第三轮插入10万条看一下。

fbdded6617005617da8a27a79f74ad11.gif

640

这执行已经有点卡了,我们稍微等一下,喝一杯茶(用了6分钟)。

d3e2c05e786e0cb16005a4d57b3778e7.png

OK,数据到位了。再来测一下。

count

0bfb3322f9570fbdf04ede86d34156dd.png

limit 1

85ca2f391ed61fa8fdb23f5a9efd3810.png

这轮下来limit 1 占据了上风的感觉。

第4轮测评

ok,继续第4轮的测评,再插入10万条吧,毕竟一次6分钟。

count

c536d60b13d3d3be863a1f120b0126c6.png

limit 1

e0e100092d21a2ba51aee60a215ec976.png

现在越来越倾向于limit 1了。测试继续。

第5轮测评

继续插入10万条数据。

count

21f513915135b82e0e054af468f26726.png

limit 1

43aea0a0e0ed1c9a8f2aa45203b80ce9.png

第6轮测试

再插入20万条数据。

count

c38a3933471e16e4b5df6aca1ff63eb0.png

limit 1

463c5cb3c7fe807caed6d2e8f8f80028.png

都到这了,也不能偷懒,继续测。

第7轮测试

再插入20万条数据。

count

48a8e4d51c280555aa59bbb1d96ad352.png

limit 1

08dcbac19080efedfa6d5fb81d462741.png

效果更加明显了,继续吧,那就。

第8轮测试

再插入20万条数据。

count

f72862810d510c342f57c74c50cc7301.png

limit 1

24f4dbcea93cb8cddf7e2b3c19fb5b4c.png

第9轮测试

最后一轮了,再插入10万条数据。

count

972a26196dd0d1f0366f2d79032937e3.png

limit 1

efc0b03588f54d63371c22428000043e.png

最后

其实结果已经很明显,小编再把所有的测评结果总结到表格中,铁证如山。

91b3a55344f6d1423042429fa7448a89.png

总结

理论好固然重要,理论是可以从书中学习到的,经验可能需要我们自己去实现才能获

作者:Java小咖秀
链接:https://juejin.im/post/5ee05a41e51d4578912933eb

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值