首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NoSQL用例场景或何时使用NoSQL

NoSQL用例场景或何时使用NoSQL
EN

Stack Overflow用户
提问于 2012-05-11 14:59:04
回答 2查看 119.3K关注 0票数 285

所有的炒作,似乎真的很难找到可靠的信息,什么时候使用这个。因此,我提出以下问题,如果这些问题是愚蠢的,我很抱歉:

  1. 我应该对用户数据使用NoSQL吗?例如配置文件、用户名+密码等。
  2. 我应该使用NoSQL作为重要的内容吗?例如文章,博客文章,产品清单等。

我想不是吧?我觉得NoSQL只是为了快速可访问的东西,从中丢失数据是没问题的。但我也读到NoSQL应用程序内置了冗余,这样我就不会丢失数据了?

另外,如果上面的两个例子很糟糕,您能给出我使用NoSQL的特定业务用例吗?我看到了很多一般的描述,但没有很多真实世界的例子。我唯一能想到的就是用户对用户的消息传递和分析。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-11 15:21:34

这真的是个“视情况而定”的问题。一些通用点:

  • NoSQL通常适用于非结构化/“无模式”数据--通常,您不需要预先显式地定义模式,只需要在没有任何仪式的情况下包含新的字段。
  • 由于不支持RDBMS世界中的联接,NoSQL通常倾向于去角色化模式。因此,您通常会有一个扁平的,非规范化的表示您的数据。
  • 使用NoSQL并不意味着您会丢失数据。不同的DBs有不同的策略。例如,MongoDB -您基本上可以选择哪个级别来权衡性能和数据丢失的潜力--最好的性能=更大的数据丢失范围。
  • 通常很容易扩展出NoSQL解决方案。增加更多的节点来复制数据是这样的一种方法:( a)提供更大的可伸缩性;( b)提供更多的保护,防止一个节点崩溃时数据丢失。但是,这也取决于NoSQL DB/配置。NoSQL不一定像您推断的那样意味着“数据丢失”。
  • IMHO、复杂/动态查询/报告最好由RDBMS提供。NoSQL DB的查询功能通常是有限的。
  • 它不必是一个1或另一个选择。我的经验是在某些用例中结合使用关系数据库管理系统( RDBMS )和NoSQL。
  • NoSQL DB通常缺乏跨多个“表”执行原子操作的能力。

您确实需要了解和了解各种类型的NoSQL商店是什么,以及它们如何提供可伸缩性/数据安全性等等。很难给出一个全面的答案,因为它们都是不同的,处理问题的方式也不同。

以MongoDb为例,查看他们的用例,看看他们认为MongoDb的“非常合适”和“不太合适”的用法。

票数 203
EN

Stack Overflow用户

发布于 2013-06-17 19:57:06

我认为Nosql至少在这些场景中“更适合”(欢迎更多补充)。

  1. 只要添加更多的节点,就很容易水平扩展。
  2. 查询大数据集 想象一下每天在twitter上发布的无数条推特。在RDMS中,可能有数以百万计的表(或数十亿?)对于行,您不想直接对这些表进行查询,更不用说,大多数情况下,复杂的查询也需要表连接。
  3. 磁盘I/O瓶颈 如果一个网站需要根据用户的实时信息向不同的用户发送结果,那么我们可能正在谈论的是每秒数以万计的SQL读/写请求。那么磁盘i/o将成为一个严重的瓶颈。
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10553860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档