如何衡量社区版的neo4j数据库大小?

时间:2013-07-01 21:23:32

标签: neo4j

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

谢谢。

3 个答案:

答案 0 :(得分:2)

你是什么意思:

  

Neo4j社区版不提供转储

企业版也没有提供这样的内容。您是在寻找有关原始磁盘或节点数/关系数的数据库大小的统计数据吗?

如果是磁盘:在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 :(得分:1)

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

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

从仪表板:

http://localhost:7474/webadmin/

查看“数据库磁盘使用情况”指标。

仪表板上的

'服务器信息':

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

查看'TotalStoreSize'行。

最后,数据库抽屉;完全向下滚动并查看“数据库”部分。

答案 2 :(得分:0)

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

MATCH ()
RETURN COUNT(*) AS node_count;

和关系数量:

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