绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
count(*) vs limit 1 ,效率测评,结果和你想的一样吗?
2020-06-10 04:04:32

之前在公众号发过一个文章SQL查找是否"存在",别再count了,很耗费时间的,文中就一个表中是否存在数据,写出了用count 和 limit 1到底用哪个的结论,然而并没有实际的证明。因此小伙伴之前问我能不能出一个实际的测评啊,安排。

本文仅仅针对以下两种sql测评。

两种SQL的写法

count()
SELECT count(*) FROM table 
复制代码
limit 1
SELECT 1 FROM table LIMIT 1
复制代码

测评前提

引擎 : INNODB

表结构

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

explain

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

limit 1
count

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

测评开始

轮测试

先插入它1000条数据看下。

count

limit 1

第二轮测试

继续插入1万条数据。

count
limit 1

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

第三轮测试

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

640
640

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

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

count
limit 1

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

第4轮测评

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

count
limit 1

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

第5轮测评

继续插入10万条数据。

count
limit 1

第6轮测试

再插入20万条数据。

count
limit 1

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

第7轮测试

再插入20万条数据。

count
limit 1

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

第8轮测试

再插入20万条数据。

count
limit 1

第9轮测试

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

count
limit 1

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

总结

理论好固然重要,理论是可以从书中学习到的,经验可能需要我们自己去实现才能获取到,希望这篇文章能给大家带来一些帮助。

本文使用 mdnice 排版

分享好友

分享这个小栈给你的朋友们,一起进步吧。

Kafka
创建时间:2020-05-22 09:55:12
Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 对于像Hadoop的一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

栈主、嘉宾

查看更多
  • ?
    栈主

小栈成员

查看更多
  • wangdabin1216
  • 小雨滴
  • chenglinjava0501
  • 时间不说话
戳我,来吐槽~