2014-03-24 105 views
1

創建依賴於數據庫中信息的python腳本的最佳方法/方法是什麼?例如:監視數據庫相關事件的最佳做法

數據不斷被添加到數據庫中。如果基於某列「A」的標準偏差高於1,1.5或2,則根據用戶偏好,他們會收到通知。因此,如果用戶設置爲1.5,則他會在St.Dev高於1.5時收到通知。

向用戶推送信息沒有問題,如何最優地監控數據庫的更新是。

到目前爲止,我想到了3種方式:

  1. 觸發器在MySQL,但這裏的問題是,我不希望在MySQL 休假計算。不是最有效的解決方案,I 想象得到
  2. 創建腳本並使用crontab運行它,該腳本查詢數據並檢查參數和用戶首選項。
  3. 創建具有While True:人工crontab中sleep組合

任何其他更理想的或開箱即用的解決方案,我丟失的?

回答

2

我並沒有在MySQL中專門做這件事,但在大多數情況下,觸發器實際上已經在Oracle中進行了大量優化。我希望MySQL是相似的。如果每次更新都需要運行計算,觸發器肯定是最快的方法,並且是唯一保證始終處於最新狀態的方法。

我想如果你使用外部腳本,你只能每隔幾分鐘運行一次?這肯定比每次更新觸發器都要快,但是MySQL也具有基於時間的觸發器http://dev.mysql.com/doc/refman/5.1/en/events.html

使用觸發器,觸發器的編譯SQL將最有可能保留在數據庫實例的內存中。編譯SQL很快。

我也認爲將這種事情做成觸發器,而不是維護外部腳本通常更清潔。但這只是我的看法。

如果您的數據非常大,您可能會亂動移動平均公式,並可能會減少計算總數。似乎有可能,但我沒有數學背景來幫助你。

總之,將一個示例表放在一起並用觸發器進行測試很容易。試試看,我認爲你會發現它滿足你的性能需求。如果不是,我會對看到結果感興趣。

相關問題