答案 0 :(得分:2)
有一篇有关understanding Neo4j database growth的文章,应该解释您所看到的内容。
总而言之,当发生删除时,相关关系和节点存储文件中的条目被标记为已删除,但是存储未压缩(这会使我们的图形ID编号混乱,因为它们充当指向我们存储的指针) 。我们存储.id
个文件,这些文件跟踪以后添加数据时可以重复使用的ID。因此,在删除大量节点和关系时,您会看到商店大小增加,因为1.商店没有被压缩以回收已删除的项目空间,而2.因为我们要添加到.id文件中的可重用ID列表中。
稍后添加节点和关系时,将利用可重用的ID,并将存储文件中的这些位置回收并用于新的节点和关系。存储文件的空间不会增加,但是可重复使用的id列表会缩小,从而导致更多的存储空间。
此处可能涉及的另一个因素是transaction logs,它们在将更改刷新到存储之前用作临时事务存储。轮换和保留策略可能会使交易文件的保留时间超出您的需要(如果要更改轮换和保留设置,请自行调整轮换和保留设置,请勿自行修改或删除交易日志)。事务日志通常会占用大量空间,因此,如果您经过了一个可以修剪大部分事务日志的点,则可以解释空间差异。