NoSQL 用例场景或何时使用 NoSQL [关闭]

2024-02-26

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

  1. 我应该对用户数据使用 NoSQL 吗?例如。配置文件、用户名+密码等。
  2. 我应该对重要内容使用 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(使用前将#替换为@)

NoSQL 用例场景或何时使用 NoSQL [关闭] 的相关文章

  • 由于新的 couchbase 安装,将数据恢复到 couchbase

    我们有一个 couchbase 服务器 不知何故进行了全新安装 并且我们在那里的所有数据都丢失了 我已经设法备份了 opt couchbase var lib couchbase data 现在 当我尝试将数据复制回来时 它没有显示 cou
  • 同时使用@Document和@Entity

    我尝试在同一个实体类上使用 Document和 Entity 但是当我实现两个存储库 ElasticSearchRepository和CrudRepository 时出现以下错误 The bean esRepo defined in nul
  • NoSql DB 和 OO Db 有什么区别?

    NoSql DB 和 OO Db 有什么区别 NoSQL DB 通常是非规范化的 保存对象数据的副本来代替对象 而 OODB 是具有对象关系的规范化数据库 在 OODB 中 数据存储在对象中的一处 并链接 关系 到其他对象 由于上述非规范化
  • 使用 Cassandra API 获取所有键——类似于“SELECT id FROM table;”

    Cassandra 命令行实用程序sstablekeys可用于从物理 SSTABLE 文件中提取所有定义的行键 sstablekeys cassandra data Keyspace1 Standard1 N Data db Cassand
  • 带 Java 客户端的键值数据库

    我基本上想在磁盘上存储一个哈希表 以便以后可以查询它 我的程序是用Java 编写的 哈希表从字符串映射到列表 那里有很多键值存储 但经过大量研究 阅读后 尚不清楚哪一个最适合我的目的 以下是一些对我来说很重要的事情 简单的键值存储 允许您使
  • nosql 是什么意思?有人可以用简单的话向我解释一下吗?

    在这篇文章中堆栈溢出架构 http highscalability com stack overflow architecture我读到了一些叫做 nosql 的东西 我不明白它的意思 我试图在谷歌上搜索 但接缝我无法确切地了解它是什么 谁
  • 是否可以针对 noSQL DB 构建复杂的查询

    我一直在研究 noSQL DB 但未能为自己满意地回答这个问题 是否可以针对 noSQL DB 构建复杂的查询 我想知道的查询类型是这样的 select from DB where vara gt x AND varb 2 AND varc
  • 库存管理系统的 SQL 与 NoSQL

    我正在开发一个基于 JAVA 的网络应用程序 主要目的是拥有在多个称为渠道的网站上销售的产品的库存 我们将担任所有这些渠道的管理者 我们需要的是 用于管理每个渠道的库存更新的队列 库存表 其中包含每个通道上分配的正确快照 将会话 ID 和其
  • 如何在弹性搜索(aws)中存储日期范围数据并搜索范围?

    我正在尝试在弹性搜索中存储酒店房间可用性 然后我需要 搜索从某个日期到另一个日期可用的房间 我想出了 存储数据以确保可用性的两种方式 如下 这里可用性字典存储了所有日期 每个日期键的值是 true 或 false 代表其可用 那天与否 id
  • 带有版本控制的 json 数据存储

    问题定义 有一个Java服务器存储JSON可以映射到 Java 类的数据 Java 类可能会发生变化 目标是能够更新 Java 类并且仍然能够解码JSON旧版本的数据到新版本的 Java 对象 应该有一个良好的版本控制系统 例如 能够向 J
  • 使用 NoSQL 文档存储数据库有哪些实际用例?

    在过去的几天里 我一直在阅读文档并观看特定于 Mongo DB 的截屏视频 我不知道像这样的解决方案何时会比典型的 pg 或 mysql 环境更好 具体来说 我的问题是在什么情况下 有用例就很好 你会选择 nosql 路线 Thanks 许
  • Mongoose:find() 忽略重复值

    我有一只 聊天 猫鼬Schema它具有以下属性 const schema mongoose Schema recipient type mongoose Types ObjectId required true ref User sende
  • 在同一个应用程序上创建多个 PouchDB 数据库是否被认为是糟糕的设计?

    我有 Mysql 背景 现在使用 Pouchdb 我习惯了每个应用程序有 1 个数据库和许多表的 SQL 模式 在 pouchDB 中情况有所不同 因为数据不是存储在表中而是存储在文档中 因此 在我的应用程序中 我有一个任务数据库 使用以下
  • Apache Cassandra 如何进行聚合操作?

    总的来说 我对 Apache Cassandra 和 nosql 相当陌生 在 SQL 中 我可以执行聚合操作 例如 SELECT country sum age count AS averageAge FROM people GROUP
  • redis - 使用哈希

    我正在使用 redis 为我的 Web 应用程序实现社交流和通知系统 我是 redis 的新手 我对哈希值及其效率有一些疑问 我读过这篇很棒的文章Instagram 帖子 http instagram engineering tumblr
  • 设计 Cassandra 数据模型的最佳实践是什么? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 以及需要避免哪些陷阱 您有任何交易中断吗 例如 我听说导出 导入 Cassandra 数据非常困难 这让我想知道这是否会妨碍将生产数据
  • 使用 Cassandra 进行单元版本控制

    我的应用程序使用 AbstractFactory 作为 DAO 层 因此一旦实现了 HBase DAO 系列 创建 Cassandra DAO 系列并从多个角度查看差异对我来说将是非常好的 不管怎样 试图做到这一点 我看到 Cassandr
  • AWS DynamoDB 写后读一致性 - 理论上它是如何工作的?

    大多数nosql解决方案仅使用最终一致性 并且考虑到DynamoDB将数据复制到三个数据中心 如何保持写后读一致性 解决此类问题的通用方法是什么 我认为这很有趣 因为即使在 MySQL 复制中 数据也是异步复制的 我将详细告诉您 Dynam
  • Cassandra - 使用 ORDER BY 和 UPDATE 集群键的替代方法

    我的架构是 CREATE TABLE friends userId timeuuid friendId timeuuid status varchar ts timeuuid PRIMARY KEY userId friendId CREA
  • NoSQL(MongoDB)与 Lucene(或 Solr)作为数据库[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 随着基于文档数据库的 NoSQL 运动的发展 我最近关注了 MongoDB 我注意到如何将项目视为 文档 就像 Lucene 以及 Solr 用

随机推荐

  • Pandas - 替换列值

    我知道这个问题有很多主题 但没有一种方法对我有用 所以我发布了我的具体情况 我有一个如下所示的数据框 data pd DataFrame 1 0 0 1 1 0 0 1 columns sex split data sex replace
  • 将linux的.so文件转换为windows的.dll文件

    我有一些 C 代码 具有各种头文件和 make 文件 编译为 soLinux Ubuntu 中的文件和python使用以下方式调用此共享对象的函数的程序Ctypes 现在 我想在 Windows 上使用这个程序 在窗户里 Ctypes需要一
  • 在 WPF 中的组合框顶部有一个可单击的按钮

    我可以在组合框的下拉列表中显示一个按钮并可单击 但无法让选定的组合框项目 下拉列表已关闭 使该按钮可单击 它总是跳过按钮单击并仅打开下拉列表 我基本上希望我设置的 Button Click 事件处理程序在单击后被调用 这是我的示例组合框 它
  • Yii2 如何将 SUM SQL 函数转换为查询生成器?

    我有这个简单的 SQL 查询 SELECT product name SUM product amount FROM orders GROUP BY product name 它将显示一个包含产品名称及其数量的列表 就像这个例子 我想将其转
  • Markdown 创建页面和目录?

    我开始用markdown来做笔记 I use marked查看我的 Markdown 笔记 它很漂亮 但随着我的笔记变得越来越长 我发现很难找到我想要的东西 我知道 Markdown 可以创建表格 但是它是否能够创建目录 跳转到部分或在 M
  • 对最后 X 秒内收到的值的平均值进行采样

    我有一个调度成功和失败事件的类 我需要维护该类最后 X 秒内的平均失败数 事件总数的统计数据 我正在考虑使用循环链表并为每个事件附加成功或失败节点 然后计算列表中故障节点的数量与总节点数 但这有两个主要缺点 我需要不断地放大 缩小列表大小
  • PyQt4 创建简单 GUI 应用程序时遇到问题

    所以我正在使用 Python 和 PyQt4 创建一个简单的 Windows 应用程序 我在 QtCreator 中按照我想要的方式设计了 UI 并从 ui 文件创建了必要的 py 文件 然而 当我尝试实际打开窗口的实例时 出现以下错误 A
  • Angular 2:将数据传递给路由?

    我正在开发这个 angular2 项目 我正在使用ROUTER DIRECTIVES从一个组件导航到另一组件 有 2 个组件 IE PagesComponent DesignerComponent 我想从页面组件导航到设计组件 到目前为止
  • 在用户界面和控制台应用程序中使用 Task.Yield() 之间的区别

    我试图异步显示一个进度表单 表明应用程序正在运行 而实际应用程序正在运行 如下这个问题 https stackoverflow com questions 33406939 async showdialog 我有以下内容 主要形式 publ
  • java中提交内存的确切状态

    我很好奇从 MemoryUsage 类查询值时 提交 内存的确切含义是什么 该类将其解释为 已提交代表保证可供 Java 虚拟机使用的内存量 以字节为单位 这是否意味着该内存正在被 jvm 进程使用 并且在被 java 进程释放之前不可用于
  • autodoc 扩展模拟类的类

    我正在尝试在扩展外部类的类上运行 autodoc 我使用了模拟以便接受导入 为此 我使用了本博客中描述的内容http blog rtwilson com how to make your sphinx documentation compi
  • 大型 DAG 上的拓扑排序示例

    我正在寻找现实世界的应用程序拓扑排序执行于大图 sizes 我想象您可以找到此类实例的一些领域是生物信息学 依赖性解析 数据库 硬件设计 数据仓库 但我希望你们中的一些人可能遇到或听说过任何需要的特定算法 项目 应用程序 数据集顶排序 即使
  • SELECT 滚动的 Javascript 控制

    首先 我不是 Javascript 专家 我想向我正在使用的选择框添加一项功能 当添加新项目时 该功能会自动滚动到末尾 但前提是用户尚未向上滚动 基本上 当用户查看较旧的条目时 我不希望新到达的条目将位置固定到选择列表的末尾 但是 如果用户
  • 将网络拆分为多个前缀的子网

    我正在使用netaddr模块并试图弄清楚如何 是否可以将网络拆分为不同前缀的子网 例如 将 16 拆分为 X 23 和 Y 24 据我所知 我们可以使用subnet函数将网络分割为 X 个给定前缀 但只需要 1 个前缀 上面的代码将从 16
  • 垂直对齐内联柔性元素

    我试图在同一个 div 中垂直对齐 3 个不同的 inline flex 元素 但最后一个不符合预期 container height 100px width 100 background color blue container left
  • Android MPchart Piechart Legend set自定义错误

    我正在使用 MPchart 饼图 当我设置自定义图例数组时 它不接受该数组 我的代码 Legend l chart getLegend l setCustom ColorTemplate VORDIPLOM COLORS new Strin
  • Django Rest Framework 多个嵌套可写序列化器

    我正在尝试使用 django Rest 框架实现多个嵌套的可写序列化器 我已阅读可用的文档http www django rest framework org api guide serializers writable nested re
  • 如何在 lme4 中获取收敛错误消息或最大梯度

    使用 lme4 进行随机效应模型后如何获得最大梯度值 默认情况下 如果大于0 002就会显示 但我想制作一个如下所示的原始函数 它需要一个最大梯度的返回值 无论该值是否大于0 002 做原始模型 MM lt lmer Y 1 X 1 clu
  • 如何在matplotlib中绘制单个点

    我想在图表上绘制一个点 但似乎它们都需要绘制为列表或方程 我需要像这样绘制ax plot x y 我的位置会出现一个点x y我的图表上的坐标 import matplotlib pyplot as plt from mpl toolkits
  • NoSQL 用例场景或何时使用 NoSQL [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 尽管有这么多的炒作 但似乎很难找到关于何时使用它的可靠信息 所以我提出以下问题 如果这些问题真的很愚蠢 我很抱歉 我应该对用户数据使用 NoSQ