好日子所有,验证遗留表的ActiveRecord
我们正在从一个系统做数据迁移到Rails应用程序。我们正在使用的一些表格非常大,并且使用ActiveRecord一次将它们移动超过1条记录需要很长时间。因此,我们采取了在SQL中复制表并在事后进行验证。
的一个接一个的验证检查仍然很慢,但是从SQL的速度增加复制多弥补了它。但是,这并没有解决我们是否能够更快地进行验证检查的渴望。我们试图将表拆分成块,并将每个块传递给一个线程,但实际上执行速度较慢。
的问题是,大桌子,当前迭代一行一行地做验证,像这样
Model.find_each do |m|
logger.info "M #{m.id} is not valid" unless m.valid?
end
人对如何加快这什么建议?
感谢
同行
编辑我应该说,没有具体的代码。我们每个进程寻找对我们如何才能同时运行这个建议,给每个进程的数据块,而不需要一台机器
好点,我一直不愿意尝试和SQL复制验证,但你可能是正确的,因为它会提供最佳性能 – 2009-10-01 13:11:43