如何测量Neo4j社区版数据库的大小?

5
我了解到Neo4j社区版不提供dump。那么衡量底层Neo4j数据库大小的最佳方法是什么?使用du命令能否提供良好的估算?
谢谢。
3个回答

2

查看数据库大小的几种方式(以字节为单位):

du -hc $NEO4J_HOME/data/databases/graph.db/*store.db*

从仪表板:
http://localhost:7474/webadmin/

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

从仪表板中查看“服务器信息”:

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

查看'TotalStoreSize'行。

最后,打开数据库抽屉;滚动到底部并查看“数据库”部分。

enter image description here


2

您的意思是:

Neo4j社区版没有提供dump

企业版也没有提供类似的功能。您是在寻找有关原始磁盘容量大小或节点/关系计数的统计信息吗?

如果是磁盘容量,请在Linux上使用du -sh,或在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”标记。

1
您可以使用Cypher来获取节点数量:
MATCH ()
RETURN COUNT(*) AS node_count;

和关系的数量:

MATCH ()-->()
RETURN COUNT(*) AS rel_count;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接