Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我的Neo4j数据库比上周小,尽管我一直在添加节点、关系和属性,而不是删除它们_Neo4j_Size_Graph Databases - Fatal编程技术网

为什么我的Neo4j数据库比上周小,尽管我一直在添加节点、关系和属性,而不是删除它们

为什么我的Neo4j数据库比上周小,尽管我一直在添加节点、关系和属性,而不是删除它们,neo4j,size,graph-databases,Neo4j,Size,Graph Databases,我的数据库以前的大小大约是80gb,现在,在添加了几百万个节点之后,它的大小是35gb 你知道neo4j窗帘后面会发生什么吗?它大大缩小了数据库的大小 这是数据库的sysinfo: 有一篇关于这方面的文章,应该可以解释你所看到的 总之,当发生删除时,相关关系和节点存储文件中的条目被标记为已删除,但存储不会被压缩(这会弄乱图形id编号,因为它们充当指向存储的指针)。我们存储.id文件,这些文件跟踪在以后添加数据时有资格重用的id。因此,在批量节点和关系删除后,您将看到存储大小增加,因为1。未压缩存

我的数据库以前的大小大约是80gb,现在,在添加了几百万个节点之后,它的大小是35gb

你知道neo4j窗帘后面会发生什么吗?它大大缩小了数据库的大小

这是数据库的sysinfo:

有一篇关于这方面的文章,应该可以解释你所看到的

总之,当发生删除时,相关关系和节点存储文件中的条目被标记为已删除,但存储不会被压缩(这会弄乱图形id编号,因为它们充当指向存储的指针)。我们存储
.id
文件,这些文件跟踪在以后添加数据时有资格重用的id。因此,在批量节点和关系删除后,您将看到存储大小增加,因为1。未压缩存储以回收已删除的项目空间和2。因为我们将添加到.id文件中的可重用id列表中

稍后添加节点和关系时,将利用可重用ID,并回收存储文件中的位置,并将其用于新节点和关系。存储文件的空间不会增加,但可重用的ID列表会缩小,从而产生更多的存储空间


这里可能涉及的另一个因素是,在将更改刷新到存储区之前,用作临时事务存储区。轮换和保留策略可能会使事务文件保留的时间超过您的需要(如果您想更改轮换和保留设置,请调整轮换和保留设置,不要自己修改或删除事务日志)。事务日志通常会占用大量空间,因此,如果您通过了一个点,其中大部分事务日志可以被删除,那么这可能解释了空间差异。

我认为在我的情况下,事务日志占用了我提到的额外空间,因为自从我创建了这个数据库以来,我没有删除任何节点,只是增加了一百万个。我的配置是:dbms.tx_log.rotation.retention_policy=1天,根据文档,这意味着日志将在1天后删除,对吗?这意味着我们将保留包含过去24小时内提交的任何事务的事务日志。它不会每24小时删除所有事务日志。