【问题标题】:What are some real use cases for going with a NoSQL Document Store db?使用 NoSQL 文档存储数据库有哪些实际用例?
【发布时间】:2010-09-01 19:22:41
【问题描述】:

在过去的几天里,我一直在阅读文档并观看特定于 Mongo DB 的截屏视频,我不知道这样的解决方案何时会比典型的 pg 或 mysql 环境更好。

具体来说,我的问题是在什么情况下(带有用例会很好)你想走 nosql 路线?

谢谢!

【问题讨论】:

    标签: mongodb use-case document-storage database nosql


    【解决方案1】:
    1. 许多不同的作家。特别是当写入器由于网络断开而被分段时,以后需要重新同步已写入分叉两侧的数据。这破坏了 ACID,虽然您可以使用显式业务逻辑解决问题,但您现在处于 NoSQL 领域。这在军事情况下很常见,但任何人人都是多产作家的系统都会在 ACID 系统上设置一些写争用锁。

    2. 流动模式。更改传统数据库中的模式是一项昂贵的操作,通常需要某种服务器停机时间或其他复杂的过程。对于大多数 NoSQL 系统来说,这是微不足道的。因此,如果您有来自许多不同来源的数据要合并和/或您可能希望在以后开始跟踪新信息,那么 NoSQL 系统将更容易处理。合并两个数据源以便相互绘制图表是我能想到的一个很好的例子。

    3. 低带宽复制。一旦您破坏了 ACID,您就可以在网络图的叶节点上拥有读取器和写入器,其中包含不需要数据库的完整副本的部分数据。我自己公司的产品,未来陆军指挥所使用这个。

    4. 数据互操作性。大多数 NoSQL 数据库允许您在不提前知道架构的情况下对数据进行内省,从而使不同系统之间的连接更容易发生。

    5. 大规模缩放。这是最常争论的问题,也是 NoSQL 支持者最常滥用的问题。如果这是您选择 NoSQL 的唯一原因,请从 MySQL 开始,然后再进行扩展。

    【讨论】:

      【解决方案2】:

      用例
      我们将 MongoDB 用于大规模极其瞬态的数据结构。 它实际上是一个工作跟踪器/管理器,每秒处理许多工作单元。 工作单元没有定义的模式(不同的单元被频繁地发明)但我们需要能够查询特定字段或属性,而无需遍历整个数据库。 回顾一下: 对于在云中运行的单个“商品”机器,高度瞬态、高度可用(不能为查询而阻塞),工作负载约为 600QPS。

      事实上,在 SQL 机器上做同样的事情同时保持相同的成本是极其困难的。

      MongoDB(也适用于我们)的其他流行用例是统计收集,它在增加文档内的特定属性方面非常有效,比大多数 RDBMS 系统更有效。

      再次重申,这并不是说在 MySQL 中不可能做到,只是更昂贵并且需要更多时间(更多技能),这对于小公司或快速开发环境来说意味着无法做到。

      【讨论】:

        【解决方案3】:

        一些 REST API 返回 JSON 数据(例如,许多 open government data APIs)。如果您想将 REST 数据转储到本地数据存储(以防您需要运行分析等),使用 MongoDB 摄取 JSON 对象是微不足道的。无需定义表模式。更好的是,如果 JSON 对象随时间发生变化(例如 REST API 返回附加字段),您仍然可以一步获取数据。尝试使用关系数据库!

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2022-01-05
          • 2019-01-06
          • 2011-02-09
          • 2023-03-08
          • 1970-01-01
          • 2014-12-30
          • 1970-01-01
          • 2023-04-10
          相关资源
          最近更新 更多