【问题标题】:Neo4j graph structure and performance issue [closed]Neo4j 图结构和性能问题 [关闭]
【发布时间】:2015-08-12 06:46:22
【问题描述】:

在我的 Neo4j/SDN 应用程序中,我遇到了性能问题,因为获取包含与节点的关系的 VoteGroup 节点 - DecisionCriterion

此处描述的详细信息 - Neo4j slow creation method

在我的应用程序中,每对 DecisionCriterion 都有一个 Vote 列表。每个Vote 都有weight(double)。

我需要根据每对 DecisionCriterion 上所有 Vote 的平均值执行一些数学运算。

以前每个 Vote 都包含对节点的引用 - DecisionCriterion(就像现在的 VoteGroup)。

为了提高在每对 DecisionCriterion 上获取所有 Vote 平均值的性能,我引入了新的中间节点 VoteGroup,其中包含与节点的关系 - DecisionCriterion ,为此DecisionCriterion 为所有Vote 预先计算avgWeight,并且还包含对所有这些Vote 的引用。

现在我在获取VoteGroup 时遇到性能问题:

MATCH (d:Decision)<-[:VOTED_FOR]-(vg:VoteGroup)-[:VOTED_ON]->(c:Criterion)
WHERE id(d) = {decisionId} AND id(c) = {criterionId} 
RETURN vg

我不知道有什么问题..可能是我创建了错误的图形结构或其他什么..

请帮我解决这个问题。

【问题讨论】:

    标签: neo4j cypher spring-data-neo4j graph-databases


    【解决方案1】:

    我已迁移到新的 Neo4j 2.2.4 和 SDN 3.4.0.RC1,问题消失了

    【讨论】:

      【解决方案2】:

      首先 - 使用内部id 不是一个好主意。考虑使用您自己的 id 属性(不要忘记在其上添加索引)。

      第二 - 您可以尝试分析您的查询以找到查询中的弱点 (info)。
      TL;博士; - 在查询前添加PROFILE

      第三 - 您可以重写查询以帮助数据库以更优化的方式工作。 示例:

      MATCH (d:Decision) WHERE id(d) = {decisionId}
      MATCH (c:Criterion) WHERE id(c) = {criterionId}
      WITH d, c
      MATCH (d)<-[:VOTED_FOR]-(vg:VoteGroup)-[:VOTED_ON]->(c)
      RETURN vg
      

      这里的关键部分是WITH 关键字(info)。

      希望对你有帮助。

      【讨论】:

      • 感谢您的回答。我已经尝试过这个查询,但是性能并没有明显好转。在最初的问题中,我添加了所有配置文件信息 - stackoverflow.com/questions/31928321/neo4j-slow-creation-method 但我无法根据它确定性能缓慢的原因。当我删除获取 VoteGroup 的查询时,其余逻辑运行得非常快..
      • 数据库中的数据增长也会降低此查询的性能
      • @alexanoid 从 Neo4j 浏览器运行查询需要多长时间?数据库中有多少数据?
      • @alexanoid 正如我所见,查询本身非常快 - 181 毫秒(基于上一个问题的信息)。这个数字取决于有多少数据返回(序列化)给客户端。您还应该检查 Neo4j 服务器的配置方式。由于 GC 问题,较小的 Java 堆大小会降低性能。 Neo4j 缓存类型/大小也应该被检查(一定要使用合适的,有足够的可用内存)。部分链接:Server perfomancePerformance guide
      • 总节点数:397013 决策节点:8346 标准节点:30526 投票组节点:176864
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多