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

Neo4j/Cypher simple query index scan doesn't work

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

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

我尝试了下面最简单的匹配。

match (u:User {UserId:"id"}) return u 并且索引扫描不起作用。

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

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

谁能解释为什么会这样。

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

低于此阈值,使用索引或标签索引不会提高查询性能。