MySQL数据库服务器中的高CPU利用率

时间:2013-01-02 10:05:54

标签: mysql cpu-usage

我必须运行一个产生非常大的结果集的查询(每行20K结果和5列)。

我正在对数据进行一些处理并将结果存储在另一个数据库表中。

所有这些处理都是在cron进程上完成的。

我的问题是,当我运行查询时,我的数据库服务器的CPU利用率达到100%,直到该过程完成。

请帮助我理解这种情景的最佳实践。

1 个答案:

答案 0 :(得分:1)

在这种情况下,您需要开始考虑MySQL实例的优化和/或垂直扩展。

  • 尝试找到一种优化您正在使用的SQL查询的方法
  • 如果可能,请在执行较轻查询的几个步骤中拆分cron作业。
  • 如果返回的查询集中的某些数据在每个cron运行中都是相同的 - 将其缓存。
  • 如果脚本执行的频率不是至关重要的,则拆分运行并将查询集限制为较小的数字。您可以在20分钟内使用查询集中的5k项执行该脚本4次。
  • 如果可能,请考虑迁移到非关系数据库。
  • 对MySQL实例进行一些性能调整。