本篇内容介绍了“mysql的count统计查询怎么用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
1,有人问我,count查询为啥有时候快有时候慢
2,首先要明白count查询的真正作用
2-1:统计某个列的数量
2-1:统计行数
1,统计列时,会查询这个列不为空的数量,它是需要计算的
2,统计行数时,如果不加where,它可以直接取到结果,因为它可以利用存储引擎的特性直接获得这个值,比如count(*)
3,统计列时,如果知道这个列不能为空,会转化为count(*),从而加快速度
所以:你要知道自己要干什么,该怎么样去用
拓展:为啥慢?innodb为聚簇索引同时支持事物,其在count指令实现上采用实时统计方式。在无可用的二级索引情况下,执行count会使MySQL扫描全表数据,当数据中存在大字段或字段较多时候,其效率非常低下(每个页只能包含较少的数据条数,需要访问的物理页较多)
1,50万条数据,没有索引,大约耗时13分钟
2,50万条数据,有索引,大约耗时354毫秒
3,原理
mysql一个数据页为:16k(默认)
能存16*1024/(4+8) =1365条数据(为什么是4+8可以看看mysql存储页的原理)
假设每页数据耗损不存满,50%
50万条数据,需要500000/1365*2 为 732个物理页
大小为16k*732为11.4M
mysql空间按区分配,一区1M,假设连续的话,需要连续读12个区
pc硬盘转速7200转/分= 70m/s
io寻址时间(11.4*8.5ms=96)+读取时间(11.4m/70m=162ms)= 96+162 = 258毫秒
“mysql的count统计查询怎么用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。