为什么neo4j中的节点和关系有这样的容量限制?
我想知道为什么neo4j对节点和关系有容量限制。节点和关系的限制为2^35,比“正常”的2^32整数多一点。常见的SQL数据库(例如mysql)将主键存储为int(2^32)或bigint(2^64)。你能解释一下这个决定的好处吗?在我看来,这是选择数据库时的一个关键决策点 这是人为的限制。他们将在不久的将来移除它,尽管我还没有听到任何官方消息 通常,在实际达到硬件限制之前,您会在一台机器上遇到硬件限制 当前选项是手动将图形分片到不同的机器。对于某些用例来说并不理想,但在其他情况下它可以工作。在未来,他们将有一种自动切分数据的方法——这方面也没有ETA 更新: 我学到了更多关于neo4j存储内部的知识。这些限制之所以如此,是因为id号作为指针存储在磁盘上的多个位置(节点记录、关系记录等)。要将它再增加2的幂,他们需要每个节点增加1个字节,每个关系增加1个字节——它目前已被打包到可以使用的程度,而不需要在磁盘上使用更多字节。在这篇精彩的博文中了解更多信息: 更新2:为什么neo4j中的节点和关系有这样的容量限制?,neo4j,Neo4j,我想知道为什么neo4j对节点和关系有容量限制。节点和关系的限制为2^35,比“正常”的2^32整数多一点。常见的SQL数据库(例如mysql)将主键存储为int(2^32)或bigint(2^64)。你能解释一下这个决定的好处吗?在我看来,这是选择数据库时的一个关键决策点 这是人为的限制。他们将在不久的将来移除它,尽管我还没有听到任何官方消息 通常,在实际达到硬件限制之前,您会在一台机器上遇到硬件限制 当前选项是手动将图形分片到不同的机器。对于某些用例来说并不理想,但在其他情况下它可以工作。在
我听说在2.1中,他们将把这些限制提高到比目前更高的一个数量级左右。从neo4j 3.0开始,所有这些限制都被删除 动态指针压缩可根据需要扩展Neo4j的可用地址空间,从而可以存储任意大小的图形。没错:没有超过340亿个节点限制
有关更多信息,请访问。他们已经在neo4j 3.0中删除了所有这些限制。请看我的答案。我想,这些约束是在仅企业版中删除的吧?