LIMIT会影响neo4j“allShortestPaths”密码查询性能

时间:2016-08-31 03:19:17

标签: neo4j

我了解到你的LIMIT会高出多少,执行计划期间DbHits会有多高,而neo4j正在使用A *算法进行“allShortestPaths”查询。

我的第一个问题是剂量LIMIT也会影响neo4j“allShortestPaths”查询。如果它确实影响了,它会影响多少,为什么会影响?

我已经做了一些测试。但我没有找到明显的证据表明LIMIT会影响我们所期望的性能

[EDITED]

我的测试查询:

MATCH
  (node1:E { eid:"c953fc2d-55fc-4239-910e-ae6e41b3648d" }),
  (node2:E { eid:"e8cdf5e0-97ad-4e1e-a8e4-29358f8a9866" }),
  p = allShortestPaths((node1)-[*]-(node2))
RETURN p
LIMIT 25;

1 个答案:

答案 0 :(得分:2)

测试查询中的LIMIT不会限制allShortestPaths完成的工作量;相反,它只会限制你得到的结果数量。

影响allShortestPaths完成的工作量的唯一方法是在搜索路径的长度上加上一个上限。例如,此查询仅搜索最多包含5个关系的路径:

MATCH
  (node1:E { eid:"c953fc2d-55fc-4239-910e-ae6e41b3648d" }),
  (node2:E { eid:"e8cdf5e0-97ad-4e1e-a8e4-29358f8a9866" }),
  p = allShortestPaths((node1)-[*..5]-(node2))
RETURN p
LIMIT 25;

顺便说一句,为了加快终端节点的匹配,您应该:E(eid)create an index