如何在 mysql db 上进行非侵入式数字运算?

How to do non-obtrusive number-crunching on mysql db?

不知道如何表述这个问题。

我有一个非常繁忙的生产数据库,每天有近 100 万次点击。

现在我想对实时数据做一些研究(编辑: "real-time" 可能有几分钟的历史)。

在不中断生产的情况下执行此操作的最佳方法是什么?

想法:

  1. 在unix shell中,有nice的概念。它允许我为特定线程赋予低优先级,因此它仅在其他线程空闲时使用 CPU 。我基本上是在 mysql 上下文中寻找相同的内容。
  2. 获取数据库转储并进行离线研究:
    • 这不会让我的网站在获取转储所需的几分钟内瘫痪吗?
    • 有没有办法配置转储命令,使其以 nice 方式进行提取(见上文)?
  3. 直接在实时数据库上执行 SQL 命令:
    • 有没有办法再次配置命令,以便它们以 nice 方式执行?

更新:反对想法 2 的论点是什么?

根据 Whosebug 上的评论和面对面的讨论,以下是对来到这里并提出相同问题的人的回答:

  • 在 MySQL 中,似乎没有任何 nice 类型的进程优先级控制(例如,我听说在 Oracle 中有)
  • 由于任何 "number-crunching" 最多被视为我网站的另一个访问者,因此不会降低网站性能。所以它可以安全地 运行 在生产中(只读,当然......)。