我试图找到一种方法来跟踪模型变化,从而实现更高效,更智能的模式。从我现在正在做的事情开始。
我有一个大约80.000个对象的数据库,每小时更新一次。
目前我正在使用paper_trail gem进行版本控制。类似的解决方案有 audited,vestal_versions等。
从一开始就清楚的是我的数据库会很大。但是仅仅运行了3天后,我的数据库已经有了1.2GB的大小,有5个表。
我基本上需要跟踪对象的3-4个变量并在一个月的时间内跟踪它们。这意味着大约720个版本(每小时1个版本)。
以有效的方式管理这类数据的好方法是什么?例如,创建15个变量并用2天的数据填充它们是明智的吗?这意味着相同数量的数据没有额外的行。一开始我有这些想法,但我不知道这是不是一个好主意。
您还有什么其他方式可以推荐我?处理如此庞大的数据集时有哪些好的做法?
# Further Information:
- Ruby on Rails 4.1.4
- Ruby 2.1.2
- PostgreSQL 9.3.4
All attributes are integers
答案 0 :(得分:0)
如何保持这种状态?您说您需要这些数据一个月。三天内1.2 GB意味着月底有12 GB的数据。这可能看起来很大,但对于MySQL或Postgres或其他任何东西,它都不是。换句话说,这里的确切问题是什么(大型数据库不是一个)。它会影响您的表现吗?
修剪你能做的事。如果您只需要一小部分,请使用您需要的变量制作自定义审核日志。如果这是出于度量目的,那么720行肯定不会占用大量空间。另一种选择是将它们组合成统计数据(例如,每天版本,在本周末进行聚合并删除每日数据,然后重复)。