MYSQL 慢查询为什么会导致 CPU 占用率过高

2020-03-31 10:33:20 +08:00
 Inn0cence

性能调优的过程中发现慢查询过多会导致 CPU 占用飙升, 假如我慢查询的原因是磁盘随机 IO 过多,这个瓶颈主要是在磁盘吧?为什么 CPU 占用也会飙升。

3543 次点击
所在节点    MySQL
5 条回复
msg7086
2020-03-31 10:40:16 +08:00
命题假设错误。
很多慢查询是因为要扫表,也就是几十万条记录一个个看过去,有些是要先生成几十万条记录然后再查,所以很容易就吃光 CPU 导致慢查询了。
Inn0cence
2020-03-31 10:47:30 +08:00
@msg7086 加了索引的情况下,扫描行数到不了这么高,但是 CPU 占用还是飙升
sansanhehe
2020-03-31 11:38:24 +08:00
@Inn0cence 扫描行不多但是 CPU 依然高,有可能是每行数据包含的列较多,某些列的数据量比较大
Inn0cence
2020-03-31 12:00:54 +08:00
@sansanhehe innodb 走索引,先是通过索引找到主键,再通过主键去查询记录,这个时候还和列有关啊?
xcstream
2020-04-05 23:58:37 +08:00
就是查字典不看目录从第一页翻到最后一页,费脑子

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/657842

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX