从Java查询NoSQL&直接与性能之间的性能差异间接查询

时间:2013-10-18 18:27:57

标签: java mongodb neo4j jdo nosql

我刚开始研究 NoSQL 并想问下列问题:

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

  2. 与上述问题1类似,Java是否为所有 NoSQL 数据库提供标准查询语言?

  3. 与MongoDB和/或Neo4J上的直接NoSQL查询相比,使用JDO / Datanucleus或Spring Data时是否存在显着的性能差异?例如,就RMDBS而言,与使用JPA / ORM工具相比,通过JDBC编写直接SQL,有利于直接SQL的显着性能差异。

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

    感谢。

2 个答案:

答案 0 :(得分:1)

目前,NoSQL没有标准。

如果选择NoSQL来提高性能,添加任何图层都可能会对其产生影响。出于这个原因,大多数NoSQL提供商更愿意为每种语言提供“驱动程序”,以便提高性能并为您提供访问其数据的简便方法。

28io最近努力创建一种语言来查询许多NoSQL数据库。该语言称为JSONiq。

答案 1 :(得分:0)

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

我查看并寻找一些与Mongo相当容易使用的东西,并遇到了Morphia。我从来没有看过任何其他地方,因为它很容易使用。

您的问题让我想起了SQL的复杂性。我过去两天在五个MySql表上工作,这些表在整个查询中都有加入。我能听到脑袋里传来一个小小的声音:'让Morphia / Mongo -ized的优先级每秒都在增加。'

https://github.com/mongodb/morphia

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