【问题标题】:Use NoSql? And if yes how?使用 NoSql?如果是的话怎么办?
【发布时间】:2011-07-20 06:34:57
【问题描述】:

我阅读并听到了很多关于 NoSQL 数据库的内容(播客、stackoverflow 问题......),我真的很想使用它们,但是......

虽然我读了很多诸如how-to-sql-or-nosql 或what-scalability-problems-have-you-solved-using-a-nosql-data-store 之类的东西,但我仍然不确定要使用哪种数据库。

问题是:对于一个(学校)项目,我们(我的项目组)需要实现一个相当大的数据库(它应该服务于一个休息服务器,可能是用 erlang 编写的,有很多客户端)。 我们非常擅长为关系数据库设计数据模型。所以我们开始这样做。

现在我玩弄了一些 NoSQL,性能给我留下了深刻的印象。 那么:使用 NoSQL 数据库是个好主意吗?我们的数据模型有 很多 关系,并且查询会有很多连接(或至少使用连接视图)。 我有时读到这意味着我应该使用关系数据库,而在其他地方我读到这意味着我可以轻松地将其重新设计为 NoSQL 样式以减少这种关系开销。

我应该使用 NoSQL,如果是,您会建议我使用哪个系统? 像HanderlerSocket for MySQL 这样的东西是一种选择吗? 以及如何轻松地将关系数据模型重新设计为 NoSQL 样式?

【问题讨论】:

  • 如果你在学校项目中达到了任何关系数据库的限制,那你就大错特错了。
  • 也许是一所很好的学校。
  • 如果他们是那么好的 OP 应该告诉我们。
  • 好吧。我们参加了所谓的HTL,这将是我们论文工作的一部分,我们希望为此创办自己的公司。
  • NoSQL 解决方案使用各种方法来实现不符合 ACID 的性能,例如延迟写入,这可能(并且将会)使您丢失数据。至于 MySQL 的 HandlerSocket - 只有当您可以将整个数据集放入内存中并且您主要使用主键查找时,它才有效 - 然后它的性能远远优于 NoSQL 解决方案。请记住,关系数据库已经存在了几十年并且是经过验证的技术,而 NoSQL 方法还很年轻,需要成熟。我肯定会坚持使用 RDBMS。

标签: mysql sql nosql


【解决方案1】:

您的问题的答案是:这完全取决于您的数据和要求。在实际项目中,您将在您的特殊项目中分析各种 NoSQL 数据库(HBase、Cassandra、MongoDB、CouchDB、Riak 等)的好处。然后,您可以根据 MySQL 等经典 RDBMS 的优势来评估这些。

在像您这样的学校项目中,NoSQL 数据库主要是一个品味决定,因为您的项目可能永远不会受益于典型的 NoSQL 优势,例如无模式或分片。

重新设计关系数据模型可能是一项非常棘手的任务,因为您必须围绕所选 NoSQL 数据库的不同数据库模型来思考。如果您的业务数据适合您选择的 NoSQL 数据库的数据库模型,则连接不一定是问题。有时,在某些 NoSQL 数据库(例如 MongoDB 等面向文档的数据库)中实现联接密集型关系模型要容易得多。

如果您真的想尝试 NoSQL,请使用 MongoDB,因为它对于第一个条目有很好的记录。

作为一名讲德语的人(Grützi in die Schweiz aus Berlin),我建议您阅读以下德语书籍,它可以帮助您了解使用 NoSQL 数据库的主要原因并解释开始使用 NoSQL 数据库的主要步骤最受欢迎的 NoSQL 数据库:NoSQL: Einstieg in die Welt nichtrelationaler Web 2.0 Datenbanken

【讨论】:

    【解决方案2】:

    请记住,您不需要只使用 1 个数据存储引擎。您可以并行使用 SQL 和 noSQL 解决方案。

    请记住正确记录您的数据库/noSQL 结构。

    -丹尼尔

    【讨论】:

      【解决方案3】:

      如果你想在 nosql 中进行连接,你可以使用 playOrm 来连接分区。这样,您可以拥有一个 1 万亿行的表,并且该表的 1 个分区可能只有 100,000 行,您可以将该分区与另一个分区连接。 playOrm 还为您提供了所有熟悉的休眠关系。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-07-25
        • 2011-04-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-07
        • 2014-11-23
        • 2022-01-17
        相关资源
        最近更新 更多