监视数据库相关事件的最佳实践

时间:2014-03-24 19:42:41

标签: python mysql

创建依赖于数据库中信息的python脚本的最佳方法/方法是什么。例如:

数据不断添加到数据库中。如果标准偏差基于某些列" A"超过1,1.5或2,根据用户偏好得到通知。因此,如果用户将设置设置为1.5,则会在St.Dev高于1.5时收到通知。

向用户推送信息不是问题,如何最佳地监控数据库以进行更新。

到目前为止,我想到了三种方式:

  1. 在MySQL中触发,但这里的问题是我不想要的 在MySQL中留下计算。我不是最有效的解决方案 想象
  2. 创建一个脚本并使用crontab运行它,该crontab查询数据并检查参数和用户首选项。
  3. 使用While True:sleep组合
  4. 创建人工crontab

    我缺少的任何其他更优化或开箱即用的解决方案?

1 个答案:

答案 0 :(得分:2)

我没有在MySQL中专门做过这个,但是对于大多数事情来说,触发器实际上在Oracle中进行了大量优化。我希望MySQL类似。如果您需要在每次更新时运行计算,则触发器绝对是最快的方法,并且唯一有保证的方法始终是最新的。

我想如果您使用外部脚本,那么每隔几分钟就会运行一次?这肯定比在每次更新时运行触发器更快,但MySQL也有基于时间的触发器http://dev.mysql.com/doc/refman/5.1/en/events.html

使用触发器,触发器的编译SQL将最有可能保留在数据库实例的内存中。编译SQL很快。

我还认为将这类事情作为触发器完成,而不是维护外部脚本通常更清晰。这只是我的观点。

如果您的数据非常大,您可能会使用移动平均公式,并可能减少计算总数。似乎有可能,但我没有数学背景来帮助你。

总之,将示例表放在一起并使用触发器进行测试很容易。试一试,我认为您会发现它符合您的性能需求。如果我没有兴趣看到结果。