加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Neo4j性能 – 计算节点 – 链表性能 – 替代方

发布时间:2020-12-17 02:23:12 所属栏目:百科 来源:网络整理
导读:更新:Wes在这里打了一个本垒打!谢谢..我添加了一个我正在使用neography Gem开发的Rails版本.完成相同的事情,但他的版本更快..请参阅下面的比较 我在Neo4j(1.9,REST,Cypher)中使用链接列表来帮助保持评论的正确顺序(是的,我知道我可以对时间进行排序等). (o
更新:Wes在这里打了一个本垒打!谢谢..我添加了一个我正在使用neography Gem开发的Rails版本.完成相同的事情,但他的版本更快..请参阅下面的比较

我在Neo4j(1.9,REST,Cypher)中使用链接列表来帮助保持评论的正确顺序(是的,我知道我可以对时间进行排序等).

(object node)---[:comment]--->(comment)--->(comment)--->(comment).... etc

目前我有900条评论,它需要7秒才能完成整个列表 – 完全不可接受..我只是返回节点的ID(我知道,不要这样做,但不是他指向我的帖子) .

我想要做的是找到评论的用户的ID,这样我就可以返回一个计数..(比如“Joe和405其他人对你的帖子发表了评论”)..现在,我甚至没有计算在这一点 – 我只是为每条记录返回author_id ..(我会担心稍后计算 – 首先要处理基本的性能问题).

start object=node(15837) match object-[:COMMENTS*]->comments  return comments.author_id

7秒太长了…

我可以只使用一个对象并将所有注释直接链接到节点,而不是使用链接列表 – 但这可能会导致超级节点陷入困境,然后找到最新的注释,即使是跳过和限制,会慢狗..

关系指数会有帮助吗?我从来没有使用它们,只是为了确保一个独特的关系,或者看看是否存在关系,但是我可以在密码查询中使用它们来帮助加快速度吗?

如果没有,我还能做些什么来减少返回ID所需的时间?

比较:以下是使用Neography gem的“第二阶段”方法的Rails版本:

next_node_id=18233
@neo=Neography::Rest.new
start_node = Neography::Node.load(next_node_id,@neo) 
all_nodes=start_node.outgoing(:COMMENTS).depth(10000)
raise all_nodes.size.to_i

结果:在290ms找到526个节点..

Wes的解决方案耗时5毫秒..

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读