【问题标题】:How to choose database between MongoDB and Cassandra如何在 MongoDB 和 Cassandra 之间选择数据库
【发布时间】:2013-09-26 22:37:30
【问题描述】:

现在我想设计一个数据库,在一些动态属性中会有一些表。我可以选择像 MySQL 这样的传统 RDBMS 来使用 EAV 设计模型来实现它们。但现在我想尝试一些新的东西。听说NoSQL数据库可以轻松解决动态属性问题,我想在MongoDB和Cassandra之间选择一个。

下面是我要设计的数据库的一些情况:

此数据库中将有大约 200,000 个项目,并且该数据库将存储在单个服务器中。

当用户要使用这个数据库时,主要过程是:用户首先访问表A,得到表B的外键,然后访问表B,得到表C的外键。表C有许多固定属性和一些动态属性。然后用户会从表C中得到一个元组,读取一些值,然后修改这个元组的一些值,并且可以添加这个元组的一些动态值。

我会将 Excel 电子表格中的几乎所有这些元组导入到我的 Java 数据库中。那么哪一个对Java的支持更好呢?

导入这些数据后,将不再有任何插入或删除操作。几乎所有外部用户的操作都是读取和更新。那么哪种数据库更适合这种情况。

我知道在这个小项目中没有必要使用 NoSQL 数据库,但我最近很想尝试学习一个。所以感谢您的回答,如果您有其他选择,那就太好了。

【问题讨论】:

  • 很难给出一个好的答案,“更好的支持”是非常主观的。您需要解决的真正问题是哪个数据库最适合您的存储需求。

标签: mysql mongodb cassandra database nosql


【解决方案1】:

根据您提供的信息,没有明显的答案。

您根据表、连接、外键描述了查询模式。首先,我建议考虑是否可以进行数据嵌入,而不是在表之间进行引用。

http://docs.mongodb.org/manual/core/data-modeling/

对于我们的项目早期阶段,我们选择了 mongodb,尽管我们现在正在将一些东西转移到 Cassandra,但我真的不后悔做出这个选择。

Mongo 非常简单、灵活。非常易于开发、应用架构更改、查询。它原谅了很多。我想说这对于 NoSQL 新手来说几乎是无价的。

Cassandra 更先进。它需要更多地考虑架构设计和查询模式。水平可扩展性是 NoSQL 市场中最好的之一。 Cassandra 在写操作方面也有很大的优势。

很多 Mongodb 用户来了两个 Cassandra。但前提是存在真正的性能和可扩展性原因

但是由于您将进行单机安装 - mongodb 可能就足够了。它具有非常好的读取性能,而数据适合 RAM。

这两个数据库都有良好支持的驱动程序。

https://github.com/mongodb/mongo-java-driver

对于 Cassandra,值得参考新的 Datastax 驱动程序

https://github.com/datastax/java-driver

我知道在这么小的空间里没有必要使用 NoSQL 数据库 项目,但我最近真的很想尝试学习一个。

那么我会推荐 Mongodb...

【讨论】:

  • 谢谢!这就是我要的。我想我可以只使用 MongoDB 来构建数据库,因为现在的主要目的是将所有这些数据导入其中并更新一些元组。由于数据库结构不是很复杂,如果我们真的需要非常高的性能和可扩展性,我可以迁移到 Cassandra。
猜你喜欢
  • 2019-06-26
  • 1970-01-01
  • 2018-04-08
  • 2014-05-23
  • 2018-09-23
  • 2023-04-01
  • 2017-09-27
  • 2012-08-02
  • 1970-01-01
相关资源
最近更新 更多