在提供查询后,Neo4j变得极其缓慢

时间:2014-08-07 07:01:06

标签: ruby neo4j cypher slowdown neography

我有一个中等大小的neo4j数据库,每个节点上有大约700000个节点和1-5个传出关系。

如果我使用浏览器界面查询索引属性上的节点并查找相邻节点,则需要大约1500毫秒,这对我来说很好。

MATCH (n {id_str : 'some_id'})-->(child) return child.id_str
...
Returned 2 rows in 1655 ms

但是,如果我使用Ruby Neography库运行类似的Cypher查询提及关系,则需要几分钟才能完成。

lookup_links = "MATCH (n {id_str : {id_str}})-[:internal_link]->(child) return child.id_str"
links = @neo.execute_query(lookup_links, :id_str => id_str)

此后,常规浏览器查询变得非常缓慢,每次大约需要两分钟。

MATCH (n2 {id_str : 'some_id'})-->(child) return child.id_str
Returned 2 rows in 116201 ms

我在64位ubuntu 14.04笔记本电脑上运行实验,内存为8GB ram,1GB堆用于neo4j。 Neo4j版本是从官方deb数据包安装的2.1.3。 Neography版本是1.6.0。我使用MRI-1.9.3。

我已经使用kill -3完成了一个stackdump,而neo正忙于提供查询。 https://gist.github.com/akamaus/a06bc9e04c7209c480e9

任何想法出了什么问题以及如何投资它?

0 个答案:

没有答案