Neo4j 浏览器崩溃灰屏

Neo4j Browser Crash grey screen

MATCH (a:Doss)
MATCH (b:Doss)
WHERE a.Num=b.Num
return a,b

花了很长时间没有结果,只是浏览器崩溃并灰屏。 NB:in 这个数据库我有 6M 个节点。

您需要一个关于 :Doss(Num) 的索引,否则这将无法在合理的时间内完成。

关键是大多数 Cypher 操作都是按行执行的。因此,根据第一个 MATCH 的每个结果执行第二个 MATCH。

如果您没有索引,那么这可能会为 a 执行一个 NodeByLabelScan,然后每个 a 节点 执行另一个 NodeByLabelScan 并过滤以查找 b.

的匹配项

基本上,您将总共执行 6M + 1 次标签扫描,并过滤 6M * 6M 行,这不是一个好主意。

如果添加索引,那么您将只执行一个 NodeByLabelScan,然后 6M 索引试图在每行中查找与 a 具有相同编号的所有 b 个节点。

您应该能够 运行 对查询进行 EXPLAIN 以确认计划者希望如何执行此查询。