簡體   English   中英

將數據存儲在沒有數據庫的Ruby on Rails中

[英]Store data in Ruby on Rails without Database

我有一些數據值,我需要存儲在我的rails應用程序,並想知道是否有任何替代創建數據庫表只是為了完成這個簡單的任務。

背景:我正在為rails我的ruby編寫一些分析和儀表板工具,我希望通過緩存永遠不會改變的結果來加速儀表板。 現在我拉了所有用戶最近30天,並重新安排它們,這樣我就可以看到每天新用戶的數量。 它工作得很好但需要相當長的時間,實際上我只需要計算最近一天並將其余的數組存儲在其他地方。

存儲此陣列的最佳方法是哪里?

創建數據庫表似乎有點矯枉過正,我不確定全局變量是否正確答案。 是否有最佳實踐來保存這樣的數據?

如果有人做過這樣的事情之前讓我知道你做了什么以及結果如何。

Ruby有一個名為PStore的內置基於Hash的鍵值存儲。 這提供了基於文件的簡單事務持久性。

使用像sqlite這樣的輕量級數據庫應該不會覺得有點過分。 或者,您可以使用像tokyo cabinet這樣的密鑰存儲解決方案,甚至可以手動將數組存儲在平面文件中,但我真的看不到使用sqlite有任何過度殺傷力。

如果你已經有了一個數據庫,創建一個單獨的表來跟蹤這種事情真的不是什么大問題。 在進行報告時,創建與您所描述的完全相同的派生匯總表通常對您有利。 您可以使用簡單的SQL語句根據需要更新這些內容,並且不必擔心您的臨時存儲會以某種方式消失。

話雖這么說,您嘗試生成的報告類型實際上可以實時完成,除非有大量數據集。 關鍵是要有索引來描述您正在嘗試的確切分組操作。 例如,如果您按日歷日期分組,則可以創建“日期”字段並根據需要將其同步到“created_at”時間。 此日期字段的索引將非常快速地執行GROUP BY created_date:

SELECT created_date AS on_date, COUNT(id) AS new_users FROM users GROUP BY created_date

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM