我有一个包含百万个节点和300万个边缘加载到Neo4j中的图表。它在进行广泛的首次遍历时崩溃,抱怨8 GB机器上的内存不足。每个节点标签字符串的平均长度为40个字符。
Neo4j使用哪种内部表示需要如此多的内存,尤其是进行遍历?鉴于Neo4j能够表示整个图形,为什么在尝试维护广度优先遍历所需的访问节点集时会失败。
根据我的理解,邻接列表格式的上图的图形表示应为MB。 计算假设节点和边的64位表示
答案 0 :(得分:2)
您可能有8 GB可用,但是您是否正在配置Neo4j以允许它使用该空间?你知道它在工作时会占多少吗?
以下是一些资源:
http://neo4j.com/developer/guide-performance-tuning/
http://neo4j.com/docs/stable/server-performance.html
http://neo4j.com/docs/stable/configuration-settings.html#config_neostore.nodestore.db.mapped_memory
http://neo4j.com/developer/guide-sizing-and-hardware-calculator/
答案 1 :(得分:0)
我没有配置Neo4J来使用更多内存。
由于该问题仅与节点有关,因此以下是我修改的内容
同时启用,自动索引节点及其键