gpt4 book ai didi

mongodb - 用于博客/内容管理系统的 NoSQL 数据库? (MongoDB/ Cassandra )

转载 作者:可可西里 更新时间:2023-11-01 10:00:58 33 4
gpt4 key购买 nike

我的公司已经使用 Oracle 很长时间了,但我们希望寻找 NoSQL 数据库来替代更快的查询和灵活的模式设计。

我曾尝试使用 MongoDB,它是当今最流行的 NoSQL 数据库。我将它连接到 Spring Data 来做一些简单的查询,这很容易设置和编码。由于我们正在使用 Spring MVC 进行 Web 开发,因此 Spring Data 似乎非常适合集成。

不过,我听说Cassandra在写入和读取方面会有更好的性能,尤其是在大型系统中。我不确定是否值得迁移到 Cassandra,也不确定如何衡量 MongoDB 和 Cassandra 之间的性能。

以下是我的系统的一些要求:

  • 专注于文章获取
  • 为文章打标签,方便用户搜索自己喜欢的文章或相关文章
  • 非分布式系统,但具有负载平衡和故障转移
  • 基于 Java,用于 Web 开发的 Spring MVC
  • 文章将存储为 XML
  • 可能提供用户定义的表(集合)和字段(键)

因此我想提出几个问题:

  • 哪个数据库最适合我的情况?除了 MongoDB 和 Cassandra,您还可以提出其他数据库。
  • 如果我使用 Cassandra,哪个框架适合集成到 Spring MVC?

非常感谢您。

最佳答案

我有一起使用 Spring 和 Cassandra 的经验。但我一直在编写自己的数据访问层。

使用 Cassandra 的 ORM 不会让您充分利用它的全部功能,而且您很可能会引入错误,因为您的 SQL 背景会让您期望某些行为,而这些行为并不是 Cassandra 会给您的。

我的建议是自己编写访问 Cassandra 的代码,并且不要害怕对很多东西进行非规范化。更多地考虑您希望如何查询(或查找)您的数据,而不是您希望保存数据的格式。

我还强烈建议阅读这篇精彩的文章:Cassandra 数据建模最佳实践 part 1 part 2

另一个可能更适合您的应用程序的数据库是 CouchDB(我喜欢使用 BigCouch)。它是另一个基于文档的 NoSQL 数据库,在我看来优于 MongoDB。它提供更好的扩展解决方案并强调可用性(就像 Cassandra 一样)。

我想向您指出 this question关于 CouchDB 和 MongoDB 之间的区别。

就框架而言,Play 框架有很多插件可用于 NoSQL 系统,因此您可以尝试一下。你可以试试 playorm这是我最后一次试验的。

编辑:我忘了提到 Kundera以及 Cassandra 的 ORM

关于mongodb - 用于博客/内容管理系统的 NoSQL 数据库? (MongoDB/ Cassandra ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21083909/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com