我有一個數據庫,一個表中有大約25 000個用戶。該表同時擁有用戶名和其他幾個colums,這些colums會存儲他們當前速度(加密散列速度)的相關信息,它們的平衡等。此數據庫每7.5分鐘更新一次新的快照數據。目前我只保留最新的數據(最新的更新/插入數據庫)。這工作正常。現在我想繼續開發它,爲每個用戶保留統計數據,並且能夠爲每個用戶顯示平均速度。他們的平均散列速度,一週和一個月的平均餘額等。這將如何?任何開始的建議?我自己沒有提出任何解決方案,所以我就這麼問。統計周和月平均值不必非常精確。謝謝!數據庫設計 - 爲25 000個用戶保留用戶歷史平均數
0
A
回答
0
我想用RRD concept 這樣,你就可以預測數據庫的增長,這隻與用戶數量成正比。 任何類型的報告都會非常快速和簡單。您可以放大數字,但隨着時間的推移精度越來越低。
拆分成桶的時間:1分鐘,5分鐘,1小時,1天,1周 假設你每10分鐘有新的快照。 分配空間(列),以保證:
- 去年6次實際測量(覆蓋1分鐘)
- 5列,以存放數據平均超過1分鐘
- 20列,以存放數據平均超過5分鐘
- 24保持數據列在1H平均
- 7列保持數據平均超過24小時
- 等
當你有一個新的快照時,以循環方式將它寫入到#1列中。一旦你要覆蓋第一個 - 計算平均值並將數據寫入#2列。以同樣的循環方式寫入#2類型。上述所有類型均相同。在您平均的每一步(或使用任何其他聚合函數)並向上移動數據。此舉觸發了另一次平均並向上移動。
在任何給定時間,您都可以根據1m,5m,1h,1day,1周時間範圍對平均值進行查看。
你甚至不需要在MySQL或任何你選擇的數據庫中實現它 - 使用可用的RRD工具。
+0
這實際上是一個非常酷且直觀的建議。我不能在我的虛擬主機上安裝定製軟件,所以我會嘗試在MySQL中實現它。感謝您的建議! – TutenStain
相關問題
- 1. 在數據庫中保留用戶歷史記錄
- 2. 用戶歷史記錄和用戶保存的數據庫模式設計
- 3. 基本數據庫設計:保留「歷史記錄」表
- 4. 我該如何修改這個數據庫設計來存儲用戶歷史?
- 5. 歷史聚合的數據庫設計
- 6. 用戶帳戶的數據庫設計
- 7. 保存數據庫歷史
- 8. 數據庫設計爲用戶評分
- 9. 爲用戶友誼設計數據庫
- 10. 用戶數據的數據庫設計
- 11. 多個用戶數據庫設計
- 12. iPhone用戶歷史數據庫(SQLite?核心數據?)
- 13. Rails 3用戶活動歷史數據
- 14. 用戶瀏覽網站歷史數據
- 15. 用戶收聽歷史數據(spotify)
- 16. MySQL數據庫設計:一個用戶表,兩個用戶組?
- 17. 用於跟蹤用戶評分歷史的數據庫表
- 18. 數據庫歷史數據
- 19. 帳戶數據庫設計
- 20. 多用戶數據庫設計
- 21. 數據庫設計:用戶和來賓
- 22. 用戶故事 - 數據庫設計
- 23. 用戶訂閱的數據庫設計
- 24. 用戶類型的數據庫設計
- 25. 數據庫設計:多用戶類型
- 26. 用戶媒體的數據庫設計
- 27. 用戶,遊戲,歷史關係的數據庫模式
- 28. 保留網頁上的用戶歷史記錄的網頁
- 29. 爲授權用戶創建賬戶的數據庫設計
- 30. 保存用戶數據庫
我認爲在這一點上,你應該看看[datawarehousing](http://en.wikipedia.org/wiki/Data_warehouse)。 –
「當前速度」是您想要存儲的唯一歷史數據嗎? –
@MarcusAdams還有2個字段我想存儲,所有cointaining小數字。 – TutenStain