我使用MySQL服务器作为数据库。我想导入至少10000条记录到数据库中。我发现了一个名为activerecord-import的gem,它可以通过一次查询将数据导入数据库。使用单个查询导入批量数据会降低性能吗?或者我应该将这些记录拆分成类似2000条记录的组并导入它?
发布于 2018-07-01 16:04:18
当您使用ActiveRecord创建新记录时,它会在幕后创建大量对象,以便在您对模型进行设置时以及在您将其提交到数据库之前正确地转换每个属性类型。创建这些对象并执行它们的查找需要时间。
当您执行查询时,这需要时间来往返。
让一个大型查询执行一系列工作所需的时间显著减少。
会降低性能吗?
当然,每件事都有性能上的折衷,但是使用像你提到的gem这样的东西会比逐行处理要少得多(也就是性能上的折衷)。
不要害怕在本地进行实验,看看每件事都是如何执行和运作的。如果/当需要扩展的时候,那就担心吧。
https://stackoverflow.com/questions/51121220
复制相似问题