我的简单节点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
任何人都可以澄清为什么会这样。
答案 0 :(得分:8)
如果您拥有相同标签的一定数量的节点,Cypher将默认使用NodeUniqueIndexSeek
,如果我记得的话,它在2.2.5版本中从703个节点开始触发。
低于此阈值,使用索引或标签索引在查询中没有性能提升。