温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

mysql的count统计查询怎么用

发布时间:2021-07-02 16:21:26 来源:亿速云 阅读:374 作者:chen 栏目:大数据

本篇内容介绍了“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统计查询怎么用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI