graph.db缓存能释放吗?
发布于 6 年前 作者 lilin 3818 次浏览 来自 问答

我通过load导入csv数据,分批导入数据量大概为2500W条数据,导入完成后查看graph.db大小为80G左右,过两天后graph.db大小变成40G左右,请问这是缓存导致的原因吗?neo4j版本为3.4,部署环境为linux。还有就是我删除500W的数据和关系,graph.db大小反而在增长,删除的过多后,neo4j就卡死了,必须重启才能访问并且重启需要半个小时,请问这是缓存导致的吗?

2 回复

有几种原因:

  1. 对数据库的更新会写入事务日志。如果是删除,即时数据不在,删除事务仍然会写入日志并保存在graph.db文件夹下(transaction.db.*);
  2. 3.4版本开始自动将页缓存写在硬盘上以备下次启动使用;
  3. 大量删除建议使用APOC的apoc.iterate过程进行批量提交(例如每删除1万条就提交一次),以减少事务大小。

@graphway 通过apoc.iterate方式已能删除大量数据,并能及时的清理事务日志

回到顶部