gpt4 book ai didi

nosql - 何时用 NoSQL 替换 RDBMS/ORM

转载 作者:行者123 更新时间:2023-12-03 10:46:28 27 4
gpt4 key购买 nike

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the help center为指导。




9年前关闭。




使用 NoSQL 数据库而不是 ORM 包装的 rdbms 对哪些项目有好处?

例子:

  • Stackoverflow 类似的网站?
  • 社会团体?
  • 论坛?
  • 最佳答案

    你的问题很笼统。 NoSQL 描述了一组彼此非常不同的数据库技术。大致有:

  • 键值存储(Redis、Riak)
  • Triplestores (AllegroGraph)
  • 列族商店(Bigtable、Cassandra)
  • 面向文档的存储(CouchDB、MongoDB)
  • 图数据库 (Neo4j)

  • 项目可以从 期间使用文档数据库中受益。开发阶段项目,因为您不必设计复杂的实体关系图或编写复杂的连接查询。我在 this answer 中详细介绍了文档数据库的其他用途.

    如果您的应用程序需要处理大量数据,那么当您使用专门的 NoSQL 解决方案(例如 Cassandra)时,开发阶段可能会更长。但是,当您的应用程序进入 生产 ,它将极大地受益于 Cassandra 的性能和可扩展性。

    一般来说,如果一个应用程序有以下要求:
  • 水平缩放
  • 使用数据模型 X
  • 执行 Y 操作

  • 该应用程序将受益于使用 NoSQL 解决方案,该解决方案旨在存储数据模型 X 并对数据执行 Y 操作。如果您需要有关某种 NoSQL 数据库的更具体的答案,则需要更新您的问题。
  • 开发过程中的好处(例如,比 SQL 更易于使用,没有许可成本)?
  • 性能方面的好处(例如,在拥有 100 万并发用户的情况下像 hell 一样运行)?
  • 什么类型的 NoSQL 数据库?


  • 更新

    键值存储 大多数情况下只能通过key查询。它们对于存储简单数据很有用,例如用户 session 、简单的配置文件数据或预先计算的值和输出。尽管可以在键值对中存储更复杂的数据,但它使应用程序承担维护“手动”索引以执行更高级查询的责任。

    三联店 用于存放 Resource Description Metadata .我对这些商店一无所知,除了 what Wikipedia tells me ,因此您必须对此进行一些研究。

    直营店专为存储和处理大量数据而构建。它们被 Google 的搜索引擎和 Facebook's inbox search 使用。 .数据由 MapReduce functions查询.尽管 MapReduce 函数一开始可能难以掌握,但其概念非常简单。这是一个类比,(希望)解释了这个概念:

    想象一下,您有多个装满收据的鞋盒,您想计算总费用。你邀请你的一些 friend 过来,并为每个鞋盒分配一个人。每个人在他的鞋盒里写下每张收据的总数。这个选择所需数据的过程就是Map部分。

    当一个人写下他的(一些)收据的总数时,他可以总结这些总数。这是减少部分,可以重复多次,直到处理完所有收据。最后,你所有的 friend 聚集在一起,总结他们的总和,给你你的总费用。这是最后的 Reduce 步骤。

    这种方法的优点是您可以拥有任意数量的鞋盒,并且可以将任意数量的人分配到鞋盒中,但最终仍会得到相同的结果。每个鞋盒都可以看作是数据库网络中的一个服务器。每个 friend 都可以看作是服务器上的一个线程。使用 MapReduce,您可以将数据分布在多个服务器上,并让每个服务器处理部分查询,从而优化数据库的性能。

    面向文档的商店 解释在 this question ,所以我不会在这里讨论它们。

    图数据库用于存储高度连接对象的网络,例如社交网络上的用户。这些数据库针对图操作进行了优化,例如查找两个节点之间的最短路径,或者查找距当前节点三跳内的所有节点。此类操作在 RDBMS 系统或其他 NoSQL 数据库上非常昂贵,但在图形数据库上非常便宜。

    关于nosql - 何时用 NoSQL 替换 RDBMS/ORM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3522069/

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