原生图存储和原生图处理有什么区别?

What is the difference between native graph storage and native graph processing?

我认为本机图形存储是指将数据(在磁盘上,而不是在内存中)存储在相邻 lists/matrices 等(无论您的问题如何),而不是像 rdbms 这样的方式。对我来说,图形处理的一部分是磁盘保存的数据在运行时如何在内存中表示,以及如何使用它来查找查询的答案。只要你在内存中有一个类似的邻接列表结构,你就可以获得无索引邻接,你的路径遍历就会变得更快。

阅读了 Robinson、Webber 和 Eifrem 的 'Graph Databases - New Opportunities for Connected Data' 之后,我不再那么确定了。还有 this 图形显示哪些图形数据库提供哪些本机或非本机功能。 Why/When 在本地存储图形数据但在非本地处理它是否有意义?

那么,您如何解释本机图存储和本机图处理之间的区别以及无索引邻接在(这两个级别中的)哪个级别发挥作用?假设图形数据库始终将整个图形结构保存在内存中(我想我听说 neo4j 正在这样做),对于查询性能(查看无索引邻接)是否重要,无论是本地图形存储还是非本地图形存储是用过的?从我天真的观点来看,我可以想象图 into/from 内存的(反)序列化可以使用非本机关系存储方法完成,而不会损失太多性能。

对于 Neo4j 是:

原生图形处理:

Native graph processing is another key element of graph technology, referring to how a graph database processes database operations, including both storage and queries. Index-free adjacency is the key differentiator of native graph processing.

原生图形存储:

Graph storage is classified as non-native when the storage comes from an outside source, such as a relational, columnar or other NoSQL database. These databases use other algorithms to store data about nodes and relationships, which may end up being placed far apart. This non-native approach can lead to latent results as their storage layer is not optimized for graphs.

更多信息Neo4j:Graph Databases for Beginners: Native vs. Non-Native Graph Technology