【问题标题】:GraphDatabase (Neo4J) vs Relational database (MySql) - query on specific column of a specific tableGraphDatabase (Neo4J) vs Relational database (MySql) - 查询特定表的特定列
【发布时间】:2013-01-15 13:15:00
【问题描述】:

当查询即将在特定表和特定列中搜索特定数据时,关系数据库(如 MySql)是否确实比图形数据库(如 Neo4j)表现更好。

例如,如果查询是:“搜索在巴黎发生的所有事件”。

为简单起见,我们假设 MySql 将有一个 Event 表,其中包含“City”索引以优化此类查询。

Neo4j 怎么样? 有人可能认为图形数据库必须遍历所有图形才能检索相关事件...... 但是,可以使用 Neo4j 创建一些索引作为其文档精确度。

对于这种分析/统计请求,为什么 RDMBS 会比它更快?

【问题讨论】:

    标签: mysql neo4j rdbms graph-databases


    【解决方案1】:

    正如您已经提到的:您将为此目的创建索引。 Neo4j 中的默认索引提供程序是lucene,它非常快并且允许细粒度的索引和查询可能性。

    索引可用于节点或关系,并且(通常)跟踪已在节点或关系的某些属性上设置了哪些值。

    您通常必须在应用程序代码中进行索引,除非您使用 neo4j 的 auto indexing feature 自动索引所有节点和/或与给定属性的关系。

    因此,像“搜索在巴黎发生的所有事件”这样的查询绝对没有问题,并且在使用索引时性能非常好。

    【讨论】:

    • 感谢您的清晰解释 :) 在这篇文章中:stackoverflow.com/questions/13046442/…,据说:“在处理大量记录时,关系数据库要快得多”=> 除非某些索引是真的设置好了,如果我弄清楚你的想法。此外,我即将使用图形数据库(Neo4j)创建一个大型项目,因为必须发生很多关系。将一些关系数据库关联到 Neo4j 是否有意义(对于我可能忽略的其他情况)或者它本身就足够了。非常感谢!
    • 我不能说除了 Neo4j 之外您是否还需要 RDBMS。但是拥有两个 DB 肯定不会让生活变得更容易——例如思考。关于事务管理、高可用性设置、备份、其他操作任务等。
    猜你喜欢
    • 2015-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-14
    • 1970-01-01
    • 2013-08-09
    • 1970-01-01
    相关资源
    最近更新 更多