2

我了解 Neo4j 社区版不提供转储。测量底层 Neo4j 数据库大小的最佳方法是什么?做 du 会提供一个好的估计吗?

谢谢你。

4

3 回答 3

2

你是什​​么意思:

Neo4j 社区版不提供转储

企业版也不提供类似的东西。您是否正在寻找关于原始磁盘或节点/关系计数方面的数据库大小的统计信息?

如果磁盘:du -sh在 linux 上使用,或在 Windows 上检查文件夹。

如果节点/关系:您必须编写 Java 代码来实际评估真实大小,因为 Web 控制台上的计数并不总是正确的。您还可以通过获取磁盘上的纯大小并除以 9(节点存储)和 33(关系存储)来进行基本计数。

Java 代码如下所示:

    long relationshipCounter = 0;
    long nodeCounter = 0;
    GlobalGraphOperations ggo = GlobalGraphOperations.at(db);
    for (Node n : ggo.getAllNodes()) {
                    nodeCounter++;
        try {
            for (Relationship relationship : n.getRelationships()) {
                relationshipCounter++;
            }
        } catch (Exception e) {
            logger.error("Error with node: {}", n, e);
        }
    }
            System.out.println("Number of Relationships: " + relationshipCounter);
            System.out.println("Number of Nodes: " + nodeCounter);

Web 控制台并不总是正确的原因是它会检查文件的最高值,并且 Neo4j 使用节点的删除标记,因此可能存在一系列“已删除”节点,这些节点的总数会增加可用的。最终 neo4j 将压缩并删除这些节点,但它们不会实时执行。

文件大小可能存在的原因与上述相同。唯一真正的方法是遍历所有节点和关系以检查“isActive”标记。

于 2013-07-01T21:53:12.410 回答
1

以字节为单位查看数据库大小的一些方法:

du -sh {$NEO4J_HOME}/data/graph.db

从仪表板:

http://localhost:7474/webadmin/

并查看“数据库磁盘使用情况”指示器。

仪表板中的“服务器信息”:

http://localhost:7474/webadmin/#/info/org.neo4j/Store%20file%20sizes/

并查看“TotalStoreSize”行。

最后是数据库抽屉;一直向下滚动并查看“数据库”部分。

于 2016-02-05T19:22:08.710 回答
0

您可以使用 Cypher 获取节点数:

MATCH ()
RETURN COUNT(*) AS node_count;

和关系的数量:

MATCH ()-->()
RETURN COUNT(*) AS rel_count;
于 2016-02-11T20:02:15.333 回答