假设类型A
的节点仅具有一种传出关系(例如[:relType]
),并且仅与类型为(:A)
的其他节点有关。
明确指定节点和关系的类型是否可以改善查询及其响应时间?
即:
是一个查询,例如
MATCH p=(:A)-[]->() RETURN p;
效率低于:
MATCH p=(:A)-[:relType]->(:A) RETURN p;
?
答案 0 :(得分:1)
[已更新]
通常,如果您知道只有一种可能的关系类型(或节点标签),则不以Cypher模式指定它会更快。这是因为Cypher计划者随后将不会生成用于验证类型(或标签)的操作。
但是,正如@InverseFalcon的注释所表明的那样,尽管验证类型(或标签)的开销很大,但Cypher计划程序有时仍可以使用类型或标签作为提示来使其加快整体查询的速度。 / p>
Profiling这两个查询版本可能有助于决定使用哪个版本。