使用ActiveImport慢速构建树的祖先

时间:2019-03-19 13:58:27

标签: ruby-on-rails ancestry activerecord-import

我正在使用active import导入评论,并使用Ancestry构建评论树。导入期间(尚未创建主键bin/flume-ng agent -n TwitterAgent -f ./conf/flume.conf 时,有什么方法可以创建后代树吗?

当前,我要导入所有注释,然后遍历每个注释以添加父注释,即使使用索引也非常慢:

id

更新

我正在使用Trigram索引来加快comments_to_import = [] import_data.each do |comment| comments_to_import << Comment.new(is_parent: comment.parent_uuid.nil?, uuid: comment.uuid, parent_uuid: comment.parent_uuid, body: comment.body) end Comment.import comments_to_import # build comment tree Comment.where(is_parent: false, ancestry: nil).all.each do |c| parent = Comment.find_by(uuid: c.parent_uuid) c.update(parent: parent) end 查询(这是祖先在构建树时使用的查询)。不幸的是,遍历数百万条评论时仍需要花费很长时间来构建。

like

0 个答案:

没有答案