首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将大型excel文件导入Rails应用程序

将大型excel文件导入Rails应用程序
EN

Stack Overflow用户
提问于 2013-05-07 23:43:48
回答 1查看 1K关注 0票数 0

我有一个包含数千行的excel文件。在我的例子中,我不能使用大容量插入,因为对于每一行,我应该创建几个关联。现在,所有进程花费超过1小时的20k行,这是地狱。解决这个问题最好的办法是什么?

我使用的是电子表格创业板

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-08 07:17:25

这类似于Rails喜欢遇到的臭名昭著的"1+N“查询情况。我也有类似的情况(导入具有多个关联的20k+行文件)。我优化这个过程的方法是为关联预加载散列。因此,例如,如果您有一个包含导入数据中的AssociatedModellookup_column,那么首先构建一个哈希:

代码语言:javascript
复制
associated_model_hash = Hash.new(:not_found)

AssociatedModel.each do |item|
  associated_model_hash[item.lookup_column] = item
end

这提供了对象的散列。你可以重复尽可能多的联想。在导入循环中:

代码语言:javascript
复制
associated_model = associated_model_hash[row[:lookup_column]]
new_item.associated_model_id = associated_model.id

因为您不必每次都对数据库进行搜索,所以这样做要快得多。它还应该允许您使用大容量插入(假设您可以保证关联的模型不会在加载期间被错误地删除或修改)。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16430399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档