Neo4j简单密码查询需要30到60分钟,还是永远不会完成?

Neo4j简单密码查询需要30到60分钟,还是永远不会完成?,neo4j,Neo4j,我有三种类型的节点,都有标签O、PI、p。只有O和PI节点可以相互连接,PI可以连接到p。我的数据库中有大约10000个节点和13000个关系 我已经为每个成员的每个字段创建了索引,但是如果我运行下面的查询,第一个查询需要30分钟,或者第二个查询永远不会返回。Neo4j不会这么慢吧?我的数据库大小不到4MB,我想添加5GB的数据,但我甚至无法获得良好的性能。谁能告诉我是什么问题吗?我研究了类似的StackOverflow问题,但它们都没有创建索引或使用标签。有什么好处 此查询需要30分钟以上的时

我有三种类型的节点,都有标签O、PI、p。只有O和PI节点可以相互连接,PI可以连接到p。我的数据库中有大约10000个节点和13000个关系

我已经为每个成员的每个字段创建了索引,但是如果我运行下面的查询,第一个查询需要30分钟,或者第二个查询永远不会返回。Neo4j不会这么慢吧?我的数据库大小不到4MB,我想添加5GB的数据,但我甚至无法获得良好的性能。谁能告诉我是什么问题吗?我研究了类似的StackOverflow问题,但它们都没有创建索引或使用标签。有什么好处

此查询需要30分钟以上的时间

MATCH  (oj:O {name:"blah")-->(mpi:PI)-->(x:P {sys:"foo"})   ,  mpi-->(z:O ) 
RETURN oj,mpi,x LIMIT 100
这一条似乎永远不会消失:

MATCH (oj:O {name:"blah")-->(mpi:PI)-->(x:P {sys:"foo"})  ,  mpi-->(z:O )  
, oj-->(pii:PI)-->(pp:P {name:"fubar"} ) , pii-->(lo:O {text:"something"})
return oj,mpi,pii,lo LIMIT 100

当使用Cypher查询neo4japi时,通过提取查询的参数来缓存查询执行计划。查询本身只需要构建一次执行计划。这是一个因素,因为在浏览器中,您没有对查询进行参数化。第二个因素是浏览器和Neo4j之间的数据传输

这两个因素都不足以解释数据集上这些查询的30分钟响应时间。4MB的数据可以合理地加载到内存中。您的查询不是我所说的复杂或非线性缩放


这很可能是浏览器内存使用的问题。我会尝试只返回对象的属性,而不是图形数据。限制100并不能阻止要加载的节点之间存在的关系,因此即使是100行节点,也可以有更多的关系。

问题原来是由Neo4j浏览器引起的。由于某种原因,查询花费了很长时间。

实际上,这看起来像是Neo4j浏览器的一个错误。我可以在API上快速运行这些查询。不知道为什么浏览器被打断了你是否偶然用cmd-minus放大了?如果是这样,请尝试恢复到正常屏幕大小。是否可以显示索引?schema的输出?您是否尝试在Neo4j Shell中运行它们?如果您看到任何错误,可以检查浏览器的javascript控制台吗?我将尝试neo4j shell并让您知道。我不知道:schema,使用它很好。