gpt4 book ai didi

NoSQL 用例场景或何时使用 NoSQL

转载 作者:行者123 更新时间:2023-12-03 04:06:25 27 4
gpt4 key购买 nike

尽管有如此多的炒作,但似乎很难找到有关何时使用此功能的可靠信息。所以我提出以下问题,如果这些问题真的很愚蠢,我很抱歉:

  1. 我应该对用户数据使用 NoSQL 吗?例如。个人资料、用户名+密码等。
  2. 我应该对重要内容使用 NoSQL 吗?例如。文章、博客文章、产品库存等。

我假设没有?我觉得 NoSQL 只是为了快速访问的东西,从中丢失数据是可以接受的。但我还了解到 NoSQL 应用程序具有内置冗余,这样我就不会丢失数据?

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

最佳答案

这确实是一个“视情况而定”的问题。一些一般要点:

  • NoSQL 通常适用于非结构化/“无模式”数据 - 通常,您不需要预先显式定义模式,只需包含新字段即可,无需任何仪式
  • 由于 RDBMS 领域不支持 JOIN,NoSQL 通常倾向于非规范化模式。因此,您通常会得到数据的扁平化、非规范化表示。
  • 使用 NoSQL 并不意味着您可能会丢失数据。不同的DB有不同的策略。例如MongoDB - 您基本上可以选择在性能与数据丢失可能性之间进行权衡的级别 - 最佳性能 = 更大的数据丢失范围。
  • 扩展 NoSQL 解决方案通常非常容易。添加更多节点来复制数据是一种方法:a) 提供更高的可扩展性;b) 在一个节点出现故障时提供更多保护,防止数据丢失。但同样,这取决于 NoSQL 数据库/配置。 NoSQL 并不一定像您推断的那样意味着“数据丢失”。
  • 恕我直言,复杂/动态查询/报告最好由 RDBMS 提供。 NoSQL 数据库的查询功能通常是有限的。
  • 不一定是 1 或其他选择。我的经验是在某些用例中将 RDBMS 与 NoSQL 结合使用。
  • NoSQL 数据库通常缺乏跨多个“表”执行原子操作的能力。

您确实需要查看并了解各种类型的 NoSQL 存储是什么,以及它们如何提供可扩展性/数据安全性等。很难给出全面的答案,因为它们确实各不相同,并且以不同的方式处理事情。

以 MongoDb 为例,查看其 Use Cases查看他们建议的 MongoDb“非常适合”和“不太适合”的用途。

关于NoSQL 用例场景或何时使用 NoSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10553860/

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