如何提高neo4j中密码查询的速度?
我已经建立了一个Neo4J数据库,其中包含14k个节点和15k个关系。运行此查询时:如何提高neo4j中密码查询的速度?,neo4j,cypher,Neo4j,Cypher,我已经建立了一个Neo4J数据库,其中包含14k个节点和15k个关系。运行此查询时: MATCH (n:RealNode {gid:'12'})<-[:contains*..4]->(z) RETURN DISTINCT ID(z), z.id,n.id as InternalID MATCH(n:RealNode{gid:'12'})(z)返回不同的ID(z),z.ID,n.ID作为内部ID 获得响应需要5秒以上的时间。如果我把4改成10,那要花更多的时间 我附上特定节点的
MATCH (n:RealNode {gid:'12'})<-[:contains*..4]->(z) RETURN DISTINCT ID(z), z.id,n.id as InternalID
MATCH(n:RealNode{gid:'12'})(z)返回不同的ID(z),z.ID,n.ID作为内部ID
获得响应需要5秒以上的时间。如果我把4改成10,那要花更多的时间
我附上特定节点的节点和关系的屏幕截图:
My n:RealNode是粉红色的,包含关系的节点是灰色的
我的问题如下:
1) 如何优化查询的速度(除了索引)。
2) 如果我将所有灰色节点直接放在粉色节点下,速度会有所不同吗?正如您所说的“除了索引”,我假设您有一个正确的模式索引:RealNode(gid)
但是,您的查询不会使用索引,因为您在整个模式上进行了匹配(对于Neo4j有效,正如您所说的“除了索引之外”,我假设您有一个正确的模式索引:RealNode(gid)
但是,您的查询不会使用索引,因为您匹配的是整个模式(对Neo4jThanks的答案有效)。您建议,执行两个不同的查询是不可能的,因为我通过web应用程序执行查询(通过发送post请求)我现在需要的是响应。但如果这是唯一的解决方案,也许我应该更改代码。箭头是否也会影响速度?如果是,如何影响?我在两侧设置会导致一些节点有不同的方向。我的neo4j版本是2.1.6。Christophe的代码片段不是两个查询,而是一个查询有两个匹配项链接在一起r、 无论如何,此查询不会返回与我相同的结果。请提供两个查询的配置文件输出。这样我们可以更好地调试和帮助谢谢您的回答。您的建议是,执行两个不同的查询是不可能的,因为我通过web应用程序执行查询(通过发送post请求)我现在需要的是响应。但如果这是唯一的解决方案,也许我应该更改代码。箭头是否也会影响速度?如果是,如何影响?我在两侧设置会导致一些节点有不同的方向。我的neo4j版本是2.1.6。Christophe的代码片段不是两个查询,而是一个查询有两个匹配项链接在一起r、 无论如何,这个查询不会返回与我相同的结果。那么请提供两个查询的概要文件输出。这样我们可以更好地调试和帮助
MATCH (n:RealNode {gid:'12'})
MATCH (n)-[:contains*..4]-(z) RETURN DISTINCT ID(z), z.id,n.id as InternalID