记录ActiveRecord模型更改

时间:2014-08-07 18:22:26

标签: ruby-on-rails ruby activerecord model

我试图找到一种方法来跟踪模型变化,从而实现更高效,更智能的模式。从我现在正在做的事情开始。

我有一个大约80.000个对象的数据库,每小时更新一次。

目前我正在使用paper_trail gem进行版本控制。类似的解决方案有 auditedvestal_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

1 个答案:

答案 0 :(得分:0)

如何保持这种状态?您说您需要这些数据一个月。三天内1.2 GB意味着月底有12 GB的数据。这可能看起来很大,但对于MySQL或Postgres或其他任何东西,它都不是。换句话说,这里的确切问题是什么(大型数据库不是一个)。它会影响您的表现吗?

修剪你能做的事。如果您只需要一小部分,请使用您需要的变量制作自定义审核日志。如果这是出于度量目的,那么720行肯定不会占用大量空间。另一种选择是将它们组合成统计数据(例如,每天版本,在本周末进行聚合并删除每日数据,然后重复)。