我正在使用MySQL服务器作为数据库。我想将至少10000条记录导入数据库。我发现了一个称为activerecord-import的gem,它可以通过单个查询将数据导入数据库。使用单个查询导入批量数据会降低性能吗?还是我应该将这些记录分成2000组这样的组并导入?
答案 0 :(得分:0)
使用ActiveRecord创建新记录时,它会在后台创建大量对象,以便在模型上进行设置以及将其提交到数据库之前正确地转换每种属性类型。创建这些对象并进行查找需要时间。
执行查询时,需要花费一些时间往返。
拥有一个大型查询可以完成大量工作,从而大大减少了时间。
会降低性能吗?
当然,所有内容都需要进行性能折衷,但是使用您提到的gem这样的东西比逐行工作要少得多(因此也需要性能折衷)。
不要害怕在本地进行实验,看看一切如何执行和运行。如果/到了扩展的时间,那就为它担心。