QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

NoSQL 数据库如何选型

作者:Arslan Ahmad

  • 2023-02-28
    北京
  • 本文字数:1360 字

    阅读完需:约 4 分钟

NoSQL数据库如何选型

什么是 NoSQL 数据库?


通常,“NoSQL 数据库”是指非关系型数据库。不管它是“non SQL”的缩写,还是“not only SQL”的缩写,大多数人都同意,NoSQL 数据库是以关系表之外的格式存储数据的。

 

NoSQL 数据库之所以如此大受欢迎,是因为它们为用户提供了灵活的数据存储模式。


为什么要使用 NoSQL 数据库?


NoSQL 数据库性能优异、可扩展,而且很灵活,非常适合移动、Web 和游戏应用程序。

  • 可扩展性:NoSQL 数据库通常使用分布式硬件集群进行横向扩展,而不是通过增加昂贵、健壮的服务器进行纵向扩展。在全托管服务中,有些云提供商在后台帮用户完成了所有这些操作。

  • 灵活性:NoSQL 数据库通常都提供了灵活的模式,支持快速迭代开发。NoSQL 数据库有灵活的数据模型,非常适合半结构和非结构化数据。

  • 高性能:与关系型数据库相比,NoSQL 数据库针对特定的数据模型和访问模式做了优化,进一步提升了性能。

 

以下是一些知名的 NoSQL 数据库类

键值数据库


键值数据库成对存储数据,每个记录包含一个唯一 id 和一个值。这类数据库提供了灵活的存储结构,因为值中可以存储任意数量的非结构化数据。

应用场景


会话管理、用户偏好设置和产品推荐。

典型产品


Amazon DynamoDB、Azure Cosmos DB、Riak。

内存键值数据库


不同于基于磁盘的数据库,这类数据库的数据主要保存在内存中。通过减少磁盘访问实现最小响应时间。由于所有数据都存储在内存中,在进程或服务器出现故障时,内存数据库有丢失数据的风险。内存数据库可以通过在日志中记录每个操作或生成数据快照的方式将数据持久化到磁盘上。

典型产品


Redis、Memcached、Amazon Elasticache。

文档数据库


文档数据的结构和键值数据库类似,只是键和值的形式是用标记语言(如 JSON、XML 或 YAML)编写的文档。

应用场景


用户资料、产品目录和内容管理。

典型产品


MongoDB、Amazon DocumentDB、CouchDB。 

列式数据库


列式数据库基于表存储,但没有严格的列格式。列式数据库不要求每一列都有值,而且可以组合包含不同数据格式的行段和列段。

应用场景


遥测数据、分析数据、消息传递和时序数据。

典型产品


Cassandra、Accumulo、Azure Table Storage、HBase。



NoSQL 数据库的类型

图数据库


图数据库使用节点和边来映射数据之间的关系。节点是单个的数据值,边是这些值之间的关系 

应用场景


社交图谱、推荐引擎和欺诈检测。

典型产品


Neo4j、Amazon Neptune、Azure Cosmos DB Gremlin。

时序数据库


这类数据库存储有时间顺序的流式数据。数据不是按值或 id 排序,而是按收集、摄入时间或元数据中包含的其他时间戳排序。

应用场景


工业遥测数据、DevOps 和物联网(IOT)应用程序。

典型产品


Graphite、Prometheus、Amazon Timestream。

分类账数据库


分类账数据库以日志为基础,日志中记录了与数据值相关的事件。这类数据库存储用于验证数据完整性的数据更改操作。

应用场景


银行系统、注册、供应链、记录系统(systems of record)。

典型产品


Amazon Quantum Ledger Database(QLDB)。

小结

为了选出最合适自己的 NoSQL 数据库,你应该了解各种 NoSQL 数据库之间的差异。

原文链接:

https://levelup.gitconnected.com/system-design-interviews-nosql-databases-and-when-to-use-them-780021f4063

相关阅读:

为什么 NoSQL 数据库这么受欢迎?

SQL 与 NoSQL 最终会走向融合吗?

腾讯云 NoSQL 数据库产品 2022 再迎升级,多项技术细节首次公开

最全 SQL 与 NoSQL 优缺点对比

2023-02-28 17:015449

评论

发布
暂无评论
发现更多内容

网络安全好学吗?网络安全入门篇,安装渗透测试系统kali全套教学

学神来啦

运维 网络安全 渗透测试· kali基础 kali Linux

完蛋,我的事务怎么不生效?

秦怀杂货店

MySQL 数据库 事务 事务失效

初探语音识别ASR算法

华为云开发者联盟

算法 语音识别 ASR 语音转写文章 声学模型

版本不兼容Jar包冲突该如何是好?

vivo互联网技术

jar Java 开发

给弟弟的信第26封|做一个懂得感恩的人

大菠萝

28天写作

技术揭秘!百度搜索中台低代码的探索与实践

百度Geek说

中台 后端 低代码 搜索

共筑AI开源繁荣生态 | 新一代人工智能院士高峰论坛深度学习框架分论坛成功举办

OpenI启智社区

性能分析之Linux系统平均负载案例分析

zuozewei

Linux 性能分析 12月日更

云原生时代,需要什么样的数据库?

博文视点Broadview

Golang协程之了解管道的缓存能力

恒生LIGHT云社区

Go golang

迭代你好,我是冲刺

华为云开发者联盟

Scrum 开发 迭代 冲刺 迭代增量开发

饿了么资深架构师分享云上基础架构演进

阿里云弹性计算

云上架构 运维峰会

智算未来 | 2021新一代人工智能院士高峰论坛智算网络分论坛成功举办

OpenI启智社区

滴滴数据通道服务演进之路

Kafka中文社区

SpringBoot应用和PostgreSQL数据库部署到Kubernetes上的一个例子

汪子熙

Kubernetes k8s 28天写作 docker build 12月日更

面试被问一致性hash?看这一篇就够了

公众号:程序猿成神之路

华为与湖北三所高校共建首批鲲鹏&昇腾产教融合育人基地

科技热闻

Jira Software 年度总结:12个重要功能大放送!

Atlassian

DevOps 敏捷 Atlassian Jira ITSM

确保关键基础设施精确授时与同步的弹性、冗余和安全性

科技热闻

10个Node.js 开发人员必须使用的IDE

编程江湖

node.js

一文带你了解数据库连接池的必要性

编程江湖

数据库 JAVA开发

PassJava 开源 (九) :Spring Cloud 整合 Gateway 网关

悟空聊架构

SpringCloud Gateway passjava 悟空聊架构

Arctic:网易数帆开放式流批一体表服务 | BDTC 精彩回顾

网易数帆

大数据 数据湖 iceberg 流批一体 Arctic

教你Python字符串的基本操作:拆分和连接

华为云开发者联盟

Python 连接 字符串 拆分 拆分字符串

kafka丢失和重复消费数据

编程江湖

大数据 kafka

OPPO小布助手算法系统探索、实践与思考

安第斯智能云

算法

【转】java开发之spring面试题

@零度

JAVA开发 spring框架

Soul运维总监尤首智:企业如何从0到1建设云上运维体系

阿里云弹性计算

阿里云 云上架构 运维峰会

最强最全面的大数据SQL系列

五分钟学大数据

sql 大数据 hive

PingCAP x 亚马逊云科技,为 TiDB 云端体验“加冕”

PingCAP

大数据开发Hive之如何进行数据抽样

@零度

大数据 hive

NoSQL数据库如何选型_数据库_InfoQ精选文章