Neo4j中节点上的标签限制

joe*_*joe 4 neo4j database-performance

Neo4j中可以放在节点上的标签数量是否有限制?还有很多标签对刀片性能的影响是什么?谢谢

Ste*_*ter 8

从理论上讲,标签的数量几乎是无限的(不确定,但我认为它是Integer.MAX_VALUE).实际上,您应该在单个节点上拥有尽可能少的标签.第一个4-5(不记得确切数字)标签直接与节点一起存储.其余标签内部存储在不同的位置.因此,读取具有超过4-5个标签的节点可能会导致另一个IO操作.

在写入操作时,每个标签都会造成额外的负担,因为标签是自我索引的,因此Neo4j需要写入该标签的labelscanstore.

到目前为止我见过的大多数图表(这些都是一些;-))在一个节点上没有超过3个标签.

  • 前几个标签(5 afaik)直接用neostore.nodestore.db中的节点。如果节点有更多标签,它们会转到 neostore.nodestore.db.labels。因此,为了读取具有大量标签的节点,需要进行第二次查找操作。这不是一个很大的性能损失,但有一些影响。 (2认同)