我正在尝试将所有Neo4j数据库加载到RAM中,因此查询工作速度会更快。将属性映射传递给图创建时,我没有看到该进程在内存中占用的空间与之前相同,并且它与磁盘上的文件空间不成比例。 可能是什么问题呢?以及如何修复.... 感谢
答案 0 :(得分:5)
Neo4j懒洋洋地加载所有数据,这意味着它在首次访问时将它们加载到内存中。缓存选项仅与GC策略有关,因此何时(或如果)引用将被GC。要将整个图形加载到内存中,您的缓存类型必须很强,并且需要遍历整个图形一次。你可以这样做:
// untested java code
import org.neo4j.helpers.collection.IteratorUtil;
// ...
for(Node node : graph.getAllNodes()) {
IteratorUtil.count(node.getRelationships());
}
这样,所有节点和关系都将被使用一次,从而加载到缓存中。