【问题标题】:What is the difference between native graph storage and native graph processing?原生图存储和原生图处理有什么区别?
【发布时间】:2016-02-24 19:46:02
【问题描述】:

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

阅读 Robinson、Webber 和 Eifrem 的“图形数据库 - 连接数据的新机遇”后,我不再那么确定了。还有this 图形显示哪些图形数据库提供哪些本机或非本机功能。为什么/什么时候以本地方式存储图形数据而不是非本地方式处理它有意义?

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

【问题讨论】:

    标签: graph-databases


    【解决方案1】:

    对于 Neo4j 是:

    原生图处理:

    原生图处理是图技术的另一个关键要素,指的是图数据库如何处理数据库操作,包括存储和查询。无索引邻接是原生图处理的关键区别。

    原生图存储:

    当存储来自外部来源(例如关系数据库、列式数据库或其他 NoSQL 数据库)时,图形存储被归类为非本地存储。这些数据库使用其他算法来存储有关节点和关系的数据,这些数据最终可能被放置得很远。这种非本地方法可能会导致潜在的结果,因为它们的存储层没有针对图进行优化。

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

    【讨论】:

    • 那么对于存储和处理这两个领域,无索引邻接是唯一可以称其为native的方式吗?
    猜你喜欢
    • 2018-12-24
    • 2023-03-16
    • 2019-04-14
    • 2021-12-08
    • 2021-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-08
    相关资源
    最近更新 更多