mysqlselectcount(*)如何导致CPU使用率上升

这篇文章给大家分享的是有关MySQL select count(*)如何导致CPU使用率上升的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

成都创新互联专注于房县企业网站建设,成都响应式网站建设公司,商城网站建设。房县网站建设公司,为房县等地区提供建站服务。全流程按需定制网站,专业设计,全程项目跟踪,成都创新互联专业和态度为您提供的服务

#####

msyq 版本:mysql 5.5

操作系统:CentOS 5

2019-06-05

#####

最近监控告警,CPU使用率间歇性上升至 95% 以上,通过 show processlist; 查看,发现存在 60多个活动session 在执行同一个SQL: select count(*) from xxxxx(这里没有where 子句)。

看到这里,大家可能会觉得,哦,问题找到了,因为这SQL 导致CPU使用率上升。这样的判断是否有点武断呢?

CPU 使用率上升是因 还是果呢? 或者说数据库中同时存在 多个 session 执行同一个SQL ,这是因为 CPU 使用率上升导致的还 是因为这个SQL 导致CPU使用率上升的呢?

后来研发组在应用程序上缓存了 该SQL 的结果集,问题解决。这说明确实是该SQL 导致CPU使用率上升的,但我有个凝问,count 类型的操作,没有排序的情况下,不是该占用更多的是I/O 资源吗?

带着这个凝问,我百度了一下,没有找到答案,然后我作了一个测试:在 select count(*) from xxxx  前后通过 show status 查看 Innodb_buffer_pool_read_requests 和 Innodb_buffer_pool_reads 的值,事实证明,该SQL 请求磁盘IO的次数很少,说明大量的数据检索是走的内存。这正好解释 count(*) 类型的查询会导致CPU上升的原因。

感谢各位的阅读!关于“mysql select count(*)如何导致CPU使用率上升”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!


本文题目:mysqlselectcount(*)如何导致CPU使用率上升
文章地址:http://bzwzjz.com/article/gpigcj.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 高端品牌网站建设 成都网站建设公司 网站制作报价 教育网站设计方案 宜宾网站设计 营销型网站建设 成都定制网站建设 移动网站建设 LED网站设计方案 上市集团网站建设 成都网站设计 外贸网站设计方案 高端网站设计 成都网站设计 自适应网站设计 定制网站建设 重庆电商网站建设 专业网站设计 成都网站建设 成都网站建设 定制网站制作 重庆网站建设