Neo4j / Cypher简单查询索引扫描不起作用

时间:2016-01-26 16:14:49

标签: neo4j cypher graph-databases

我的简单节点User具有UserId属性,该属性具有唯一的约束设置。

我开始分析我的查询并注意到每次我通过User执行与UserId节点的匹配时,NodeByLabelScan执行而不是NodeUniqueIndexSeek。

我在下面尝试过最简单的比赛。

match (u:User {UserId:"id"}) return u并且索引扫描无效。

如果我明确指定索引,一切正常。

match (u:User {UserId:"id"}) using index u:User(UserId) return u

任何人都可以澄清为什么会这样。

1 个答案:

答案 0 :(得分:8)

如果您拥有相同标签的一定数量的节点,Cypher将默认使用NodeUniqueIndexSeek,如果我记得的话,它在2.2.5版本中从703个节点开始触发。

低于此阈值,使用索引或标签索引在查询中没有性能提升。