返回信息流海量数据,在mysql中,cpu占用率很高。如何解决? 这就是我前阵子遇到的问题唉,看来是通用的问题.我先去查一下原因,也欢迎大家一起讨论
这是一条镜像帖。来源:北邮人论坛 / database / #6742同步于 2012/5/18
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Database机器人发帖
海量数据,在mysql中,cpu占用率很高。如何解决?
zhihao
2012/5/18镜像同步15 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
【 在 doubleKO 的大作中提到: 】
: 问题介绍太简单了吧。。。
: 至少“海量数据”大概介绍一下,常见的表结构,CACHE、INDEX情况。。。
就是数据量达到百万到亿级别的时候,操作数据库的时候CPU很快就会达到100%的利用率,这个情况经常会导致查询的时候速度大幅度变慢。假设现在是单台机子的表,Cache默认,查询的时候走的是Index。存储引擎用Innodb。这种情况在公司里也会遇到。
【 在 Robberking 的大作中提到: 】
: 遇到这种问题的时候,首先要找到问题的瓶颈,对一段时间的系统进行监控,看看问题发生的原因,如何监控,可以参考 《高可用mysql》 的 第二部分,监控的部分。
: 如果是由于SQL引起的,找出CPU消耗最大的一些SQL,然后查看查询计划,是否存在 CPU 消耗型的 plan , 比如 sort 或者 在 join 的时候 coposite table 的数据量过大,没有选择正确的连接顺序,是否存在大量子查询,cash不够大,导致频繁的换入换出,使用过多的函数如 substr , data 之类等,因为我没有看到你的 SQL,现在我没有办法判断原因。
: 如果确认是 SQL 的原因引起的,针对不同的情况,重新制定查询计划,调整bufferpool大小等等,这个需要一点一点的调整下来。但是你首先需要确定问题的瓶颈,因为你都没有确定原因,别人又看不到你的系统,没有办法给你建议。因此你先按照这个方法论试试,先找到瓶颈。
嗯,谢谢你,分析得很详细
1. 单MySQL instance处理亿级别的还是小菜一碟
2. 表要partition
3. Innodb默认设置党死得惨不用叫冤
4. 不到PB级别数据请不要侮辱海量。。。。
【 在 zhihao 的大作中提到: 】
: 就是数据量达到百万到亿级别的时候,操作数据库的时候CPU很快就会达到100%的利用率,这个情况经常会导致查询的时候速度大幅度变慢。假设现在是单台机子的表,Cache默认,查询的时候走的是Index。存储引擎用Innodb。这种情况在公司里也会遇到。
【 在 antinucleon 的大作中提到: 】
: 1. 单MySQL instance处理亿级别的还是小菜一碟
: 2. 表要partition
: 3. Innodb默认设置党死得惨不用叫冤
: ...................
给大牛跪了,惭愧。我以后会注意自己的措辞的
一亿行不算海量吧?话说处理的数据库里有几十张千万行的表,占用了几百G的空间,检索数据也是毫秒级的。
关键是建立合适的索引,SQL语句要注意优化,条件应该在索引上。
另外,话说MyISAM在查询操作上,速度要快不少。
【 在 zhihao 的大作中提到: 】
: 海量数据,在mysql中,cpu占用率很高。如何解决? 这就是我前阵子遇到的问题唉,看来是通用的问题.我先去查一下原因,也欢迎大家一起讨论