尽管有这么多的炒作,但似乎很难找到关于何时使用它的可靠信息。所以我提出以下问题,如果这些问题真的很愚蠢,我很抱歉:
- 我应该对用户数据使用 NoSQL 吗?例如。配置文件、用户名+密码等。
- 我应该对重要内容使用 NoSQL 吗?例如。文章、博客文章、产品库存等
我假设没有?我觉得 NoSQL 只是为了快速访问的东西,从中丢失数据是可以接受的。但我还读到 NoSQL 应用程序具有内置冗余,这样我就不会丢失数据?
另外,如果上面两个例子不好,你能给我一些我会使用 NoSQL 的具体业务用例吗?我看到了很多一般性的描述,但没有看到很多现实世界的例子。我唯一能想到的是用户到用户的消息传递和分析。
这确实是一个“视情况而定”的问题。一些general points:
- NoSQL 通常适用于非结构化/“无模式”数据 - 通常,您不需要预先显式定义模式,只需包含新字段而无需任何仪式
- 由于 RDBMS 世界不支持 JOIN,NoSQL 通常更喜欢非规范化模式。因此,您通常会得到数据的扁平化、非规范化表示。
- 使用 NoSQL 并不意味着您可能会丢失数据。不同的DB有不同的策略。例如MongoDB - 您基本上可以选择在性能与数据丢失可能性之间进行权衡的级别 - 最佳性能 = 更大的数据丢失范围。
- 横向扩展 NoSQL 解决方案通常非常容易。添加更多节点来复制数据是一种方法:a) 提供更高的可扩展性;b) 在一个节点出现故障时提供更多保护,防止数据丢失。但同样,这取决于 NoSQL 数据库/配置。 NoSQL 并不一定像您推断的那样意味着“数据丢失”。
- 恕我直言,复杂/动态查询/报告最好由 RDBMS 提供。 NoSQL DB 的查询功能通常是有限的。
- 它不一定是 1 或其他选择。我的经验是在某些用例中将 RDBMS 与 NoSQL 结合使用。
- NoSQL 数据库通常缺乏跨多个“表”执行原子操作的能力。
您确实需要查看并了解各种类型的 NoSQL 存储是什么,以及它们如何提供可扩展性/数据安全性等。很难给出全面的答案,因为它们确实各不相同,处理问题的方式也不同。
以 MongoDb 为例,查看他们的用例 https://www.mongodb.com/use-cases查看他们建议的 MongoDb“非常适合”和“不太适合”的用途。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)