Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 将数据批量导入数据库_Ruby On Rails_Bulkinsert_Activerecord Import - Fatal编程技术网

Ruby on rails 将数据批量导入数据库

Ruby on rails 将数据批量导入数据库,ruby-on-rails,bulkinsert,activerecord-import,Ruby On Rails,Bulkinsert,Activerecord Import,我使用MySQL服务器作为数据库。我想将至少10000条记录导入数据库。我发现了一个名为activerecord import的gem,它通过单个查询将数据导入数据库。使用单个查询导入批量数据是否会降低性能?或者我应该把这些记录分成2000条这样的一组,然后导入它吗 当您使用ActiveRecord创建新记录时,它会在引擎盖下创建大量对象,以便在您在模型上设置每个属性类型时,以及在您将其提交到数据库之前,正确地强制转换每个属性类型。创建这些对象并查找它们需要时间 当您执行查询时,往返需要时间 让

我使用MySQL服务器作为数据库。我想将至少10000条记录导入数据库。我发现了一个名为activerecord import的gem,它通过单个查询将数据导入数据库。使用单个查询导入批量数据是否会降低性能?或者我应该把这些记录分成2000条这样的一组,然后导入它吗

当您使用ActiveRecord创建新记录时,它会在引擎盖下创建大量对象,以便在您在模型上设置每个属性类型时,以及在您将其提交到数据库之前,正确地强制转换每个属性类型。创建这些对象并查找它们需要时间

当您执行查询时,往返需要时间

让一个大型查询执行大量工作所需的时间大大减少

它会降低性能吗

当然,每件事都有一个性能权衡,但是使用像您提到的gem这样的东西将比逐行进行少很多工作(因此性能权衡)


不要害怕在本地进行实验,看看每件事的表现和行动。如果/当需要扩展时,请担心它。

为什么不尝试一系列解决方案,看看什么最适合您?这个gem看起来不错,但是如果您要进行真正大规模的导入,请参阅MySQL的加载数据填充(如果您在服务器上有适当的权限)