6

如何有效地批量更新 ActiveRecord 中的记录?我正在尝试填充依赖于另一列的列。

这是我现在的代码:

Tweet.find_in_batches do |group|
  to_be_saved = []
  group.each do |t|
    t.creation_date_posix = DateTime.strptime(t.creation_date_str, '%m/%d/%Y %H:%M').to_time.to_i
    to_be_saved << t
  end
  Tweet.transaction do
    to_be_saved.each{|t| t.save}
  end
end

但它并没有提高效率。显然transaction不是正确的方法。有任何想法吗?

4

1 回答 1

7

通常,您可以使用update_alln将它们全部合并为一个,而不是将批量更新分散在sql 写入语句上。(取决于很多变量)这可以提高你的整体表现。

于 2012-11-08T22:41:03.727 回答