【问题标题】:What is the real size of a Neo4j database?Neo4j 数据库的实际大小是多少?
【发布时间】:2018-11-27 10:13:54
【问题描述】:

this article 中写了如何计算 Neo4j 数据库的大小。 但是 autohor 忽略了(大)neostore.transaction.* 文件。

在我的例子中,使用命令 du -hc $NEO4J_HOME/data/databases/graph.db/*store.db* 说“172 Mb”,但 Neo4j 浏览器中的概述说 1.92GiB。

哪个是“真实”尺寸?

【问题讨论】:

    标签: database neo4j


    【解决方案1】:

    这取决于你所说的数据库大小。

    如果你只考虑数据库的数据,这篇文章是正确的。

    就像你说的,计算不考虑neostore.transaction.*,因为它不是你的数据,而是 Neo4j 的事务日志;索引也是一样的。

    【讨论】:

    • 如果您将 Neo4j 与 MySQL 进行比较并发表演讲,您会说“是的,这是我的方案,MySQL 需要 123,3 MiB,但 Neo4j 需要 1.81 GiB”还是会忽略该事务在那种情况下的文件?也可以禁用这些日志。所以我不确定该怎么做,因为 Neo4j.com 说不建议在生产中这样做(禁用事务日志)......
    • 我将忽略 tx 日志。仅供参考,MySql 也有一个 tx 日志(就像每个 ACID 数据库一样),通常当我们获取数据库的大小时,我们会忽略它。但是这个文件对于数据库操作真的很重要。
    • 好的,但这在我的情况下并没有真正意义 :( 我创建了一个新数据库并使用“LOAD CSV WITH HEADERS FROM ....”从 .csv 文件加载我的数据. 之后,有一个巨大的 neostore.transaction.db.0 文件(17 MB)和完全空的文件,如 neostore.relationshipstore.db 和 neostore.propertystore.db(每个 0 字节)。似乎事务文件包含所有图形数据。当我删除该事务文件时,Neo4j 浏览器说我有“0 个节点和 0 个关系”......我很困惑......
    • 当你执行一个事务时,每一个原子修改都写入事务文件中。然后定期后台作业将这些修改应用于数据存储(我们称之为检查点)。您可以在此处查看文档:neo4j.com/docs/operations-manual/current/configuration/…。就像我说的 SQL 数据库具有相同的行为:sqlshack.com/beginners-guide-sql-server-transaction-logs
    • 您应该阅读以下内容:neo4j.com/developer/kb/… 每 15 分钟触发一个检查点
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多