Neo4j如何处理大型数据库?

3zwjbxry  于 2023-03-08  发布在  其他
关注(0)|答案(2)|浏览(261)

假设有一个大型数据库(〉50GB),由于其大小,无法将其完全加载到主内存中。那么Neo4j如何处理此类数据库?是否存在某种分页?如果存在,它是如何工作的?如果不存在,它是如何将数据库的一部分加载到内存中的?我想了解它是如何在低级别上工作的。

utugiqy6

utugiqy61#

下面是一些旧的知识库文章,提供了一些关于neo4j如何使用的内部信息:

随着时间的推移,细节可能会发生变化,但上面的内容至少应该让您对neo4j的一些内部组件有一个大致的了解。

qyswt5oh

qyswt5oh2#

不同使用情形的不同答案:加载、存储或检索数据?
对于加载,你可以使用CALL apoc.periodic.iterate。你可以设置不在内存中的文件的每次迭代的大小。如果连接中断,它也有恢复能力。
架构在存储大型数据集时尤为重要。初始加载之后可以进行分析,这些分析会记录在知识图中(读取该主题)。这涉及到添加新节点、关系或属性,从而提高性能。虽然这涉及到一些冗余和额外存储,但提高的效率证明了这一点。
对于数据检索,请考虑使用展开调用功能的子查询,这些功能迭代初始查询结果以在子查询中按顺序提取数据部分。您可以将结果写入文件,而不为结果使用内存。

相关问题