嵌入式 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
。
在使用以下方法清理我的嵌入式 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
。