嵌入式 Neo4j Java 清理数据库时堆出 space

Embedded Neo4j Java Heap out of space when cleaning database

在使用以下方法清理我的嵌入式 Neo4j 数据库时,我从 space 中得到了 Java 堆:

public static void cleanDb(Neo4jTemplate template) {
    template.query("MATCH (n) OPTIONAL MATCH (n)-[r]-() DELETE n,r", null);
}

现在我使用以下配置:

GraphDatabaseService graphDb = new GraphDatabaseFactory()
                .newEmbeddedDatabaseBuilder(environment.getProperty(NEO4J_EMBEDDED_DATABASE_PATH_PROPERTY))
                .setConfig(GraphDatabaseSettings.node_keys_indexable, "name,description")
                .setConfig(GraphDatabaseSettings.node_auto_indexing, "true")
                .newGraphDatabase();

如何为嵌入式 Neo4j 配置 Java 堆大小?

我可以使用 setConfig(GraphDatabaseSettings.pagecache_memory, "2g") 吗?

与您先前问题的答案相同。

我不知道它如何处理 Spring 数据,但通常你应该尝试批量删除 nodes/relationships 以避免 运行 内存不足。

密码查询:

MATCH (n)
WITH n LIMIT 10000
OPTIONAL MATCH (n)-[r]-()
DELETE n, r
RETURN count(n)

在你的应用程序中你做了:

while return_value > 0:
    run_delete_query()      

根据你的记忆你当然可以增加LIMIT