2013-01-02 59 views
0

我必须运行一个查询,它会产生非常大的结果集(每行20K结果和5列)。MySQL数据库服务器中CPU利用率高

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

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

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

请帮助我理解这种场景的最佳做法。

回答

1

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

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