将所有Neo4J db加载到RAM

use*_*956 10 neo4j

我正在尝试将所有Neo4j数据库加载到RAM中,因此查询工作速度会更快.将属性映射传递给图形创建时,我没有看到该进程在内存中占用的空间与之前相同,并且它与磁盘上的文件空间也不成比例.可能是什么问题呢?以及如何修复....谢谢

dre*_*xin 5

Neo4j懒洋洋地加载所有数据,这意味着它在首次访问时将它们加载到内存中.缓存选项仅与GC策略有关,因此何时(或如果)引用将被GC.要将整个图形加载到内存中,您的缓存类型必须很强,并且需要遍历整个图形一次.你可以这样做:

// untested java code

import org.neo4j.helpers.collection.IteratorUtil;

// ...

for(Node node : graph.getAllNodes()) {
  IteratorUtil.count(node.getRelationships());
}
Run Code Online (Sandbox Code Playgroud)

这样,所有节点和关系将被使用一次,从而加载到缓存中.