Ruby on rails 在Rails项目中循环进行一系列DB更改
我有一个导入函数,它获取一组xml格式的数据并将其粘贴到我的数据库中。问题是,根据数据量的不同,处理可能需要相当长的时间。我在服务器日志中看到,执行了大量的sql语句,它们确实保存了所有数据 我如何提高这种情况下的性能?是否可以只在内存中执行所有操作,并仅用一条语句将它们保存回内存 更新: 针对HLGEM的回答: 我通读了大量插入的方式,但它似乎不是很实用,因为我有很多数据之间的关系。。。为了在一个表中放入100个数据,我必须设置这些数据与其他表的关系Ruby on rails 在Rails项目中循环进行一系列DB更改,ruby-on-rails,performance,Ruby On Rails,Performance,我有一个导入函数,它获取一组xml格式的数据并将其粘贴到我的数据库中。问题是,根据数据量的不同,处理可能需要相当长的时间。我在服务器日志中看到,执行了大量的sql语句,它们确实保存了所有数据 我如何提高这种情况下的性能?是否可以只在内存中执行所有操作,并仅用一条语句将它们保存回内存 更新: 针对HLGEM的回答: 我通读了大量插入的方式,但它似乎不是很实用,因为我有很多数据之间的关系。。。为了在一个表中放入100个数据,我必须设置这些数据与其他表的关系 有办法解决这个问题吗?我可以进行封装插入吗
有办法解决这个问题吗?我可以进行封装插入吗?在对数据库执行操作时,不要逐行操作,这就是导致问题的原因。某种类型的大容量插入将比逐行插入过程快得多。由于不知道您正在使用的数据库,很难更具体地说明具体的操作方法。您甚至不应该考虑逐行处理,而应该考虑如何影响一组数据。好吧,这取决于:)
- 如果XML数据的处理(导入前)成本很高,可以运行一次处理,导入到数据库,然后从数据库导出普通SQL。然后,将来的导入可以使用此SQL进行批量导入,从而避免了XML处理的需要
- 如果数据导入本身很昂贵,那么您可能需要针对您的数据库,以找出如何加快数据导入的速度。如果您使用的是MySQL,您可以查看: