为什么neo4j中有节点和关系的容量限制?

Joh*_*nes 12 neo4j

我想知道为什么neo4j在节点和关系上有容量限制.节点和关系的限制是2 ^ 35 1,这是"正常"2 ^ 32整数的"小"位.常见的SQL数据库,例如mysql,主键存储为int(2 ^ 32)或bigint(2 ^ 64)2.你能解释一下这个决定的好处吗?在我看来,这是选择数据库时的关键决策点.

Eve*_*man 12

这是一个人为限制.他们将在不久的将来将其删除,尽管我没有听过任何正式的ETA.

通常情况下,在实际达到此限制之前,您会在单个计算机上遇到硬件限制.

当前选项是手动将图形分片到不同的计算机.某些用例并不理想,但在其他情况下也适用.在未来,他们将有一种方法自动分片数据 - 也没有ETA.

更新:我已经了解了有关neo4j存储内部的更多信息.限制是它们的确切原因,是因为id号作为指针存储在磁盘上的几个地方(节点记录,关系记录等).为了增加2的另一个幂,它们需要每个节点增加1个字节,每个关系增加1个字节 - 它当前被打包,无需在磁盘上使用更多字节.在这篇精彩的博客文章中了解更多信息:http: //digitalstain.blogspot.com/2010/10/neo4j-internals-file-storage.html

更新2:
我听说在2.1中它们会将这些限制增加到比现在高出一个数量级.