Neo4j设计:财产与"节点与关系"

Mar*_*nas 8 graph neo4j nosql graph-databases

我有一个节点类型,其字符串属性通常具有相同的值.等等.数百万个节点只有该字符串值的5个选项.我将通过该属性进行搜索.

我的问题是在性能和​​内存方面更好:a)将其实现为节点属性并具有大量重复(并使用WHERE进行搜索).b)将其实现为5个额外节点,其中所有原始节点引用其中一个节点(并使用额外的MATCH进行搜索).

Ste*_*ter 6

在不了解更多细节的情况下,很难给出通用答案.

从性能角度来看,最好尽早限制搜索.如果您不必查看遍历的属性,那将更加有益.

鉴于我认为最好将lookup属性移动到单独的节点并将该值用作关系类型.

  • 只要您遍历该节点,就不会有性能损失.如果你走向另一个方向,你当然必须扫描100万个关系. (2认同)