【发布时间】:2015-07-11 00:07:20
【问题描述】:
我的查询需要 52 秒才能加载(返回 1419 行)
MATCH (sn:Snapshot)--(z:Requirement {type:'super'})--(m:Requirement {type:'sub'}) MATCH (m)-[r1]-(c:Code )-[rv1]-(sn) MATCH (m)-[r2]-(t:Test)-[rv2]-(sn) RETURN DISTINCT z AS super, COLLECT(DISTINCT m) AS sub, COLLECT(DISTINCT [c,r1,rv1]) AS code,COLLECT(DISTINCT [t,r2,rv2]) AS test
我有大约 634228 个关系和 91176 个节点。
我在节点上有索引,在关系上有自动索引。 我尝试了很多方法,但找不到减少时间的方法。
如果您需要更多信息,请告诉我,我是 Neo4j 的初学者。
谢谢。
【问题讨论】:
-
您运行的是哪个 Neo4j 版本?你有
:Requirement {type}的索引吗?这是初始查询还是后续查询?请分享您的查询计划(以“PROFILE”为查询前缀)。 -
版本 2.2.0。我没有 type 作为 :Requirement 的索引。我添加了它,但没有得到任何时间改进(仍然大约 50 秒)。这是一个后续查询,所以数据库已经被缓存了。运行配置文件后:CYPHER 2.2,计划者:COST。 58815057 总 db hits in 57774 ms oi59.tinypic.com/1zlqg3s.jpg 谢谢!
-
我的数据模型已经过优化,可以防止重复并保存有关关系的信息。我应该修改它以获得更好的查询性能(但有很多数据冗余)?
标签: neo4j