Neo4j 数据库大小增长

2024-02-24

我使用 neo4j 3.0.1 社区,并且我有几 GB 的数据。这些数据很快就会过时(比如每天 2.3 次),我必须先创建新数据,然后删除旧数据(因此在任何时间点都有一些数据可用)。

问题是 Neo4j 不使用已删除节点/关系中的空间。 我使用 MATCH (n) WHERE 条件 DETACH DELETE n

我可以看到节点正在被删除(它们的数量恒定约为 30M),但大小正在增长(12 次更新后,大小几乎比应有的大 12 倍)。

我找到了以前的帖子Neo4J 数据库大小/缩小 https://stackoverflow.com/questions/26894981/neo4j-database-size-shrinking about 商店实用程序 https://github.com/jexp/store-utils但我想找到更好的解决方案。

我还发现了旧问题(来自版本 1.x)neostore.* 删除百万节点后文件大小 https://stackoverflow.com/questions/21625259/neostore-file-size-after-deleting-millions-node但至少在我的情况下,它根本不像答案中那样工作。

有一些建议删除所有数据库文件并创建一个新文件,但这需要停止服务,这是不应该发生的。

我还发现一些资料说为了重用空间需要先重启DB,也尝试了一下,没有用。

有没有办法有效地释放/重用已删除节点/关系的空间?也许我错过了一些配置,或者它仅在企业版中可用?

EDIT:

最后,我有一些时间来测试,并且我运行了数据刷新几次的场景,也重新启动了服务器几次。在windows 10环境下在neo4j 3.0.0上进行测试。结果是(还不允许嵌入图像):

neo4j 存储大小 https://i.stack.imgur.com/SzRgs.png

每列显示用于进一步更新的存储大小,蓝线表示 Neo4j 服务器重新启动,最后一列(用棕色线分隔)代表运行 store-utils 后的大小。

如前所述,大小增长得非常快,并且根据文档,重新启动并没有帮助。只有 store-utils 有帮助(它们清理除 neostore.nodestore.db 之外的文件),但将 store-utils 集成到生产解决方案将是一个困难且混乱的解决方案。

谁能告诉我为什么存储空间在增长?


您可以在创建新数据后重新启动服务器,因此下次创建数据时,它将重用您上次释放的块,这样您只剩下 2 倍的卷(如果您必须在删除数据之前先保留数据) )。

第一次您仍然应该使用 store-utils 来压缩您的商店。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Neo4j 数据库大小增长 的相关文章

随机推荐

  • 未授予 Google Drive API 读取权限

    我正在尝试使用 Google Drive API 从 Google Drive 下载随机文件 尽管运行代码后我收到一条错误消息 用户尚未授予应用程序 app code 对文件 文件名 的读取权限 如何授予该文件的读取权限 我在互联网上和 A
  • 无法使用 Dockerfile 命令更新 Openssl.cnf 文件

    我正在开发一个基于 NET 5 构建的应用程序 我们生成 docker 映像 最近 我使用作为基础的自定义 Docker 映像之一遇到问题 我的应用程序中很少有外部端点 但出现 SSL 证书错误 在对这个问题进行了一些研究之后 我发现ope
  • 如何在 Silverlight 中设置 TextBox 的行为风格?

    在 Xaml 中 我可以为文本框添加自定义行为 例如
  • 如何获取“t”的值,以便我的函数“h(t)=epsilon”为固定的“epsilon”?

    继这个问题之后 如果我已经生成了m 1000随机向量x 0均匀分布在随机矩阵 GOE 的球体和特征向量上 make this example reproducible set seed 101 n lt 500 Sample GOE ran
  • 如何使用 Yarn 升级所有范围内的软件包?

    是否可以升级我的依赖项部分中的所有特定范围的包package json通过使用 Yarn 包管理器 例如 yarn upgrade scope 这将升级所有范围内的包yarn lock and package json file https
  • 使用pygame进行多线程处理,程序崩溃

    大家好 提前感谢您的帮助 我刚刚发现了 pygame 一个 python 库 我想用它玩一下 但我遇到了一个问题 我尝试在代码中使用线程 但每次启动程序时都会崩溃 我已经隔离了问题并且我知道它是thread 1这会导致崩溃 因为当我将其注释
  • 如何将文本输入与图像按钮对齐?

    我有一个表单 其中输入字段的最后一行后面跟着 2 个图像按钮 无论我尝试什么 我似乎都无法将按钮与字段水平对齐 这是所有代码 http jsfiddle net h3ZPk http jsfiddle net h3ZPk 添加此规则 but
  • 使用未声明的标识符 self [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我创建了一个名为 Data pars
  • ASP.Net 1.1 视图状态安全

    在 ASP Net 1 1 中 最终用户是否可以在将视图数据发送回服务器之前更改视图数据 例如使其看起来像是在不存在的下拉列表中选择了一个项目 我尝试使用 firebug 操作下拉列表中的值 但服务器似乎忽略了这一点 我推测是因为视图状态表
  • BigQuery Python 客户端库中查询结果的差异

    我想知道 query 的返回值和 query result 之间的区别 在 BigQuery Python 客户端库中 bigquery client bigquery Client myQuery SELECT FROM mytable
  • 将columnNames动态传递给cassandraTable().select()

    我在运行时读取文件的查询并在 SPark Cassandra 环境中执行它 我正在执行 sparkContext cassandraTable keyspaceName colFamilyName select col1 col2 col3
  • 如何关闭 PDO 句柄

    我正在使用 PDO 访问 PHP 中的两个 SQLite 3 数据库 我想在查询期间通过重命名数据库文件来切换数据库文件 但在文件打开时我无法执行此操作 因为它会给出文件正在被另一个进程使用的错误 我尝试关闭持久连接并将句柄设置为空 但都不
  • 从命令行模拟执行二进制文件?

    有没有办法从命令行在 Simics 模拟下执行简单的 Linux 二进制文件 就像是 simics some flags a out Simics 现在没有开箱即用的应用程序模式 或系统调用模式 根据需要 可以将有效负载编译为 ELF 文件
  • 在c#中的TREEVIEW中添加复选框

    我想添加复选框到我的应用程序中树视图中某个父节点的子节点 我应该如何添加它 TreeView拥有一个名为CheckBoxes 如果设置为true 它显示所有子节点的复选框
  • 可变长度表中的内存分配

    假设我在中定义了以下可变长度表WORKING STORAGE 01 SOAP RECORD 05 SOAP INPUT PIC X 8 VALUE SPACES 05 SOAP STATUS PIC 9 VALUE ZERO 05 SOAP
  • 将 Spongycastle 与 Proguard 一起使用

    我一直在努力使用 Proguard 来让 Spongycastle 正常工作 大多数时候 问题出现在我导出签名的 APK 时 要么出现错误 要么应用程序在启动前崩溃 因此 我设法收集信息以获得有效的混淆器配置 optimizationpas
  • 如何通过 Emacs 23.1 内置集成设置 SVN 密码?

    我正在 CentOS 6 2 上做一个项目 使用发行版提供的 Emacs 23 1 1 和使用 svnserver 的 subversion 我无法在任何地方找到如何设置存储库访问密码 关于此还有另一个问题 SVN for Emacs 如何
  • View 中对 ViewModel(即其 DataContext)的引用是否对 MVVM 模式有害?

    让我们说一个ViewModel发布一个Event and a View它正在使用该虚拟机作为其DataContext订阅该Event通过强制转换来获取对 VM 的引用DataContext到虚拟机实例 vm DataContext as M
  • pandas 堆叠数据框

    我有一个数据框 看起来像 sensorId 1 2 3 9b f3 55 19 00 4b 12 00 1 7 8 bf f3 55 19 00 4b 12 00 6 5 9 da f3 55 19 00 4b 12 00 1 1 2 我想
  • Neo4j 数据库大小增长

    我使用 neo4j 3 0 1 社区 并且我有几 GB 的数据 这些数据很快就会过时 比如每天 2 3 次 我必须先创建新数据 然后删除旧数据 因此在任何时间点都有一些数据可用 问题是 Neo4j 不使用已删除节点 关系中的空间 我使用 M