【问题标题】:Limit of labels on a node in Neo4jNeo4j中节点上的标签限制
【发布时间】:2015-11-24 20:22:55
【问题描述】:

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

【问题讨论】:

    标签: neo4j database-performance


    【解决方案1】:

    理论上标签的数量几乎是无限的(不确定,但我认为是 Integer.MAX_VALUE)。在实践中,您应该在单个节点上使用尽可能少的标签。前 4-5 个(不记得确切的数字)标签直接与节点一起存储。剩余的标签存储在内部的不同位置。所以读取超过 4-5 个标签的节点可能会导致另一个 IO 操作。

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

    到目前为止,我见过的大多数图表(仅此而已 ;-))在单个节点上的标签不超过 3 个。

    【讨论】:

    • 由于我们图表的复杂性,对于图表的某些部分,每个节点最多有 40 个标签(我知道这看起来很疯狂,但我们无法解决这个问题)。您能否指出有关标签存储位置/方式以供阅读的任何信息?这个问题对我们来说可能真的很重要,我知道写作会是一个问题,但没有意识到阅读会......
    • 前几个标签(5 afaik)直接与neostore.nodestore.db中的节点。如果一个节点有更多标签,它们会转到 neostore.nodestore.db.labels。因此,要读取具有大量标签的节点,需要进行第二次查找操作。这对性能影响不大,但会产生一些影响。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-11
    • 2015-04-30
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多