2015-10-17 34 views
0

我有一個MySQL表,它存儲來自不同設備的實時數據。數據每20秒記錄一次。 表看起來是這樣的:修剪mysql表 - 平均記錄

report_dt    device value1 value2 
2015-10-16 10:32:15 solar  34.4  67.8 
2015-10-16 10:32:15 grid  56.9  23.5 
2015-10-16 10:32:35 solar  45.6  34.3 

查詢來獲得每臺設備所記錄的數值是相當佔用CPU。我有(report_dt,device)作爲主鍵。此外,幾天之後,我不再需要20秒的數據,而只需要10分鐘的平均時間。

所以,要麼在同一個表設置或每個設備的表將是令人滿意的,與此內容:

report_dt    device value1  
2015-10-16 10:00:00 solar  avg(value1 over 10 mins) 
2015-10-16 10:10:10 grid  avg(value1 over 10 mins) 
2015-10-16 10:20:20 solar  avg(value1 over 10 mins) 

的想法是,一旦執行清理行動,每24小時。

原因是包含平均值的數據必須快速檢索。而且因爲20秒間隔內的數據波動很大,所以我必須使用平均值或難以評估數據。

我可以在應用程序中執行此操作。每隔10分鐘檢索10分鐘的平均值,並將其寫回到不同的表格或不同的表格中,每個設備一個表格。

但是對於數據庫函數來說也可能有些事情嗎?

回答