Ruby on rails Rails:加快闭包树插入

Ruby on rails Rails:加快闭包树插入,ruby-on-rails,tree,bulkinsert,Ruby On Rails,Tree,Bulkinsert,我试图使用gem对一些(有序的)嵌套数据进行建模 我遇到的问题是,当我将记录插入数据库(mysql)时,插入200个子项(好吧,400个插入项)大约需要7秒钟 为了加快速度,我将继续执行直接的大容量插入/原始sql,尽管这意味着要确保正确地获得层次结构调用等 如果有人有一个策略,可以用closure\u tree批量插入孩子,我很乐意看到 我对closure\u tree的调用是:has\u closure\u tree顺序:“position” 我还尝试过设置ActiveRecord::Bas

我试图使用gem对一些(有序的)嵌套数据进行建模

我遇到的问题是,当我将记录插入数据库(mysql)时,插入200个子项(好吧,400个插入项)大约需要7秒钟

为了加快速度,我将继续执行直接的大容量插入/原始sql,尽管这意味着要确保正确地获得层次结构调用等

如果有人有一个策略,可以用
closure\u tree
批量插入孩子,我很乐意看到

我对
closure\u tree
的调用是:
has\u closure\u tree顺序:“position”

我还尝试过设置
ActiveRecord::Base.connection.execute“set autocommit=0;”
(没有区别)并关闭
咨询锁(也没有区别)

[编辑]还尝试在添加子项的
事务中包装,也没有乐趣


[编辑]打开了一个(我讨厌这样做,但我希望有一个策略可以遵循)

您是否尝试将其打包到事务中?叶,尝试过。我不太明白为什么那样会有帮助,但是是的,我试过了。我认为这很简单,因为它要进行400次插入(并选择查找下一个要使用的位置id)。N inserts\updates事务使N的插入速度更快,比如100-1000。“为什么”有很多解释。但在您的情况下,可能是gem是速度问题的根源。