据我所知,Neo4j社区版不提供转储。测量底层Neo4j数据库大小的最佳方法是什么? du会做出很好的估计吗?
谢谢。
答案 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;