【问题标题】:Querying NoSQL from Java & Performance Differences Between Direct & Indirect Querying [closed]从 Java 中查询 NoSQL 以及直接和间接查询之间的性能差异 [关闭]
【发布时间】:2013-10-18 18:27:56
【问题描述】:

我刚开始研究NoSQL,想问以下问题:

  1. 就像 SQL 是所有 RMDBS 的直接查询语言一样,那么所有 NoSQL 数据库的直接查询语言是什么?如果没有一种直接语言,那么存在哪些查询语言 - 几种查询语言的列表就足够了。

  2. 与上述问题 1. 类似,Java 是否有适用于所有 NoSQL 数据库的标准查询语言?

  3. 与 MongoDB 和/或 Neo4J 上的直接 NoSQL 查询相比,使用 JDO/Datanucleus 或 Spring Data 时是否存在显着的性能差异?比如在RMDBS方面,通过JDBC直接写SQL与使用JPA/ORM Tool相比,直接SQL有明显的性能差异。

我问这些问题的原因是为了抵消使用 JDO/Datanucleus 与性能损失或收益的交叉兼容性的优势?

谢谢。

【问题讨论】:

  • 这个问题似乎跑题了,因为它同时涉及的问题太多
  • @SimonAndréForsberg 但它们都与 JDO/Datanucleus 与 Direct 之间的差异有关,并以 SQL 为例(以便我理解差异)。
  • @PeterMmm 我的问题是关于 JDO/Datanucleus 和 NoSQL
  • NoSQL 是不依赖关系技术或 SQL 语言的一般数据库类别的总称。有数十个(如果不是数百个)具有不同类别(图形、文档、键/值、列)的 NoSQL 数据库。这个问题根本没有单一(或简单)的答案。性能基于数据模式和相关代码,并结合特定于引擎的优化和专业。查询语言是特定于引擎的。我建议阅读 Fowler 的“NoSQL Distilled”之类的书,以更好地理解整个主题。
  • @SimonAndréForsberg 根据条款和条件:我可以就程序员常用的软件工具和软件开发特有的实用、可回答的问题提出问题。那么为什么这个问题在谈到 Datanucleus 以及讨论直接查询和使用持久性框架之间的性能问题时被搁置。

标签: java mongodb neo4j jdo nosql


【解决方案1】:

此时,NoSQL 还没有标准。

如果您选择 NoSQL 来提高性能,添加任何层都可能会影响它。出于这个原因,大多数 NoSQL 提供商更喜欢为每种语言提供“驱动程序”,以尝试保持性能并为您提供访问其数据的简单方法。

最近 28io 致力于创建一种语言来跨多个 NoSQL 数据库进行查询。该语言称为 JSONiq。

【讨论】:

  • 感谢您的回答。请问 Spring Data MongoDB/Neo4J 是否通过提供者的驱动程序使用直接查询?如果是这样,您是否认为 Spring Data 可能会比我产生更多性能查询,因为我是这个游戏的新手?
【解决方案2】:

我写了一个很大的回复,但似乎我没有解决您的问题的具体细节,并且对 Morphia 有强烈(好的)意见。

我一直在寻找与 Mongo 一起使用的相当容易的东西,然后遇到了 Morphia。我从来没有在其他地方看过,因为它很容易使用。

您的问题让我想起了 SQL 的复杂性。过去两天,我在五个 MySql 表上工作,这些表在整个查询中都有连接。我可以听到脑后有个小声音说:“让这种 Morphia/Mongo 化的优先级每秒都在增加。”

https://github.com/mongodb/morphia

<!--pom.xml depenency entry -->
<dependency>
        <groupId>org.mongodb.morphia</groupId>
        <artifactId>morphia</artifactId>
    <version>0.105</version>
</dependency>

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-02-04
  • 1970-01-01
  • 1970-01-01
  • 2018-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多