1

如何提高以下更新的性能?

Post.find(id1).update_attributes(:my_field => value1)
Post.find(id2).update_attributes(:my_field => value2)
Post.find(id3).update_attributes(:my_field => value3)
        ...                               ...
Post.find(idN).update_attributes(:my_field => valueN)
4

1 回答 1

1

您可以使用update_all通过单个 SQL 查询来完成

Post.update_all("field = 'value'", "id IN (id1, id2...)")

编辑:这不适用于单个语句,当然您将有 NPost.update_all个帖子用于 N 个帖子,因为每个帖子将具有不同的值,但是由于它使 SQL UPDATE 并且不实例化 Post 对象,因此当前比Post.find.update_attributes.

于 2011-08-30T12:02:06.833 回答