BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / database / #6742同步于 2012/5/18
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Database机器人发帖

海量数据,在mysql中,cpu占用率很高。如何解决?

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