Neo4j架构索引非常慢

时间:2014-08-21 09:47:43

标签: indexing neo4j

我试图在NE4OJ中实现索引以加快某些查询速度。

其中一个问题是使用where people.key IN [<10 string values here>]根据字符串查找某些人。 我们在数据库中有大约180k个节点,标签为People,查询需要41秒才能返回结果。

所以我在这个属性上创建了一个模式索引,再次运行查询并且没有任何改变。由于好奇,我决定按ID选择:

match (people:People)
where ID(people) IN [789806,908117,934851,934857,935125,935174,935177,935183,935581,935586,935587,935588,935634,935636,935637,935638,935639]
return ID(people)

花了92毫秒。完善!所以我尝试创建一个名为test的新属性,对其进行索引并设置与节点ID相同的值。然后我运行以下查询:

match (people:People)
where people.test IN [789806,908117,934851,934857,935125,935174,935177,935183,935581,935586,935587,935588,935634,935636,935637,935638,935639]
return ID(people)

又花了41s(41000ms)。我错过了什么吗?我真的不明白......是否有一些性能问题?

仅供参考,我们在Debian上使用NEO4J 2.0.0。

谢谢你们!

1 个答案:

答案 0 :(得分:1)

据我所知,IN操作未在2.0.x中使用现有索引。因此,请尝试升级到2.1.3并重试。