加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

何时用NoSQL替换RDBMS/ORM [已关闭]

发布时间:2020-12-13 13:33:28 所属栏目:百科 来源:网络整理
导读:使用NoSQL数据库而不是由ORM包装的rdbms,哪些项目受益匪浅? 例子: Stackoverflow类似网站? 社会社区? 论坛 你的问题很普遍。 NoSQL描述了数据库技术的集合,它们是非常不同的。大概有: 重要价值商店(Redis,Riak) Triplestores(AllegroGraph) 列家族商
使用NoSQL数据库而不是由ORM包装的rdbms,哪些项目受益匪浅?

例子:

Stackoverflow类似网站?
社会社区?
>论坛

你的问题很普遍。 NoSQL描述了数据库技术的集合,它们是非常不同的。大概有:

>重要价值商店(Redis,Riak)
> Triplestores(AllegroGraph)
>列家族商店(Bigtable,Cassandra)
>面向文档的商店(CouchDB,MongoDB)
图表数据库(Neo4j)

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

如果您的应用程序需要处理非常大量的数据,则使用Cassandra等专门的NoSQL解决方案时,开发阶段可能会更长。然而,当您的应用程序投入生产时,它将从Cassandra的性能和可扩展性中受益匪浅。

一般来说,如果应用程序具有以下要求:

>水平刻度
>使用数据模型X
>执行Y操作

该应用程序将受益于使用适用于存储数据模型X并对数据执行Y操作的NoSQL解决方案。如果您需要关于某种类型的NoSQL数据库的更多具体答案,则需要更新您的问题。

>开发过程中的好处(例如比SQL更容易使用,不需要许可费用)?
>在性能方面的好处(例如,像一个数百万并发用户一样地运行)?
>什么类型的NoSQL数据库?

更新

大多数情况下,键值存储只能通过键来查询。它们可用于存储简单的数据,例如用户会话,简单的配置文件数据或预先计算的值和输出。虽然可以在键值对中存储更复杂的数据,但是它负责维护“手动”索引的责任,以执行更高级的查询。

Triplestores用于存储Resource Description Metadata.除了what Wikipedia tells me以外,我对这些商店没有任何意义,所以你必须对此进行一些研究。

列系列存储是为存储和处理大量数据而建的。它们被Google的搜索引擎和Facebook’s inbox search所使用。数据在MapReduce functions之前被查询。尽管MapReduce函数在一开始就很难掌握,但这个概念很简单。这是一个类似的(希望)解释这个概念:

想象你有多个鞋盒装满了收据,你想计算你的总费用。你邀请你的一些朋友,并分配一个人到每个鞋盒。每个人在他的鞋盒中记下每张收据的总数。选择所需数据的这个过程是Map部分。

当一个人写下他的收据总数时,他可以总结这些总数。这是减少部分,可以重复多次,直到所有收据都被处理。最后,所有的朋友们聚在一起,总结出总共的费用。这是最后的减速步骤。

这种方法的优点是您可以拥有任何数量的鞋盒,您可以将任意数量的人员分配给鞋盒,但仍然会产生相同的结果。每个鞋盒都可以看作是数据库网络中的服务器。每个朋友可以看起来像服务器上的线程。使用MapReduce,您可以将数据分布在许多服务器上,并使每个服务器处理查询的一部分,优化数据库的性能。

文件导向的商店在this question年解释,所以我不会在这里讨论。

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读