数据库

基本 nosql 和 mongodb等数据库对比基本 nosql

2022-09-02  本文已影响0人  阿兵云原生

咱们工作或者学习的过程中,接到一个需求,或者学习一个技能的时候,我们是如何去学习的呢?

我想大概分成如下几步吧:

一起来看看 NOSQL 是什么

这里来推荐一个看数据排名的地址:

DB-Engines

这里可以看到各种类型的数据库排名,数据库选型的时候这个网址就很香了

[图片上传失败...(image-a6e515-1662128097028)]

NOSQL 是什么

咱们先来列举一下传统型数据库的特点:

sql ,是结构化查询语言,泛指关系型数据库

nosql (not noly sql),不仅仅是 sql ,这泛指不提供 sql 功能的非关系型数据库

它不遵循 sql 的标准,acid 特性,表结构等特性。

最开始 nosql 实际上是 not sql ,后面慢慢发展成 not only sql

简述 nosql 的发展历史:

[图片上传失败...(image-fa5c0d-1662128097029)]

列式存储 – 键值对存储 – 文档存储 – 图形存储

为什么需要 NOSQL?

大致列举如下几点:

常用的四大类 NOSQL 数据库的优缺点对比

分类 优势 劣势 场景 代表
键值对 查找速度快 数据无结构化,通常只是用来作为字符串或者二进制 内容缓存,主要用于处理大量数据的高频访问负载 reids
列式存储 查找速度快,支持分布式横向扩展,数据压缩率搞 功能相对受限 用于分布式文件系统 HBase
文档存储 数据结构要求不严格,表结构可变 查询性能不高,缺乏统一的查询语法 用于web 应用等 MongoDB
图形数据库 可以利用图结构相关等算法 需要对整个图做计算,不利于图数据的分布式存储 用于社交网络,推荐系统,意向图,兴趣图,关系图等等 Neo4J

我们可以知道 es 也是 文档存储的 nosql ,那么 es 和 mongodb 有什么异同的呢?

mongodb 和 elasticsearch 相同点

不同点

nosql 和 关系型数据库对比

特点 NoSQL 关系型数据库
数据一致性上面 运用CAP定理,保证最终一致性,非ACID属性 严格的一致性,ACID
数据表的形式 键-值对存储,列存储,文档存储,图形数据库 二维表,数据和关系都存储在单独的表中
是否结构化 非结构化的、半结构化的,没有声明性查询语言 高度组织化结构化数据,结构化查询语言 sql
事务方面 属于 弱 事务 基础事务
Join 方面 弱,没有预定义的模式 强,数据操作语言,数据定义语言
成本代价 高(硬件方面和软件方面)
扩展性方面 强,高性能,高可用,可伸缩性强

什么是 mongodb ?

mongodb 是基于 C++ 开发的 NOSQL 开源文档数据库 ,是最像关系型数据库的 nosql,功能也是最丰富的 nosql

它具有所以的可伸缩性,灵活性,高性能,高扩展性的优势,大致有如下特性:

什么业务场景需要使用 mongodb ?

mongodb 数据库,并不是说适合每一种场景的,咱们需要人尽其才,物尽其用,技术选型,我们也是要选择最合适的技术来解决实际的业务问题或者是场景问题

如下的场景就适合使用 mongodb:

实际过程中,咱们会在哪些成场景使用到 mongodb 呢?

mongodb 应用的场景可以说是非常的多,大致有游戏,物流,内容管理,物联网,电商,社交,视频直播等等

如物流场景:

mongodb 存储订单信息,订单在运送的过程中,订单信息会不断的更新,这个时候使用mongodb 内嵌的数据形式来存储就非常方便,一次查询就可以将所有的物流信息全部取出来

再例如社交场景:

mongodb 存储用户信息,存储用户发表的朋友圈信息,那么就可以通过地理位置索引到附近的人,地点,以及相关的配套功能

不适合使用 mongodb 的场景

不适合使用 mongodb 的场景,即是 mongodb 自身的劣势场景,例如:

最后贴一下 mongodb 的官方文档地址,学习任何一门技术,都是看官网的一手资料才是正确的

欢迎点赞,关注,收藏

朋友们,你的支持和鼓励,是我坚持分享,提高质量的动力

[图片上传失败...(image-df924-1662128097029)]

好了,本次就到这里

技术是开放的,我们的心态,更应是开放的。拥抱变化,向阳而生,努力向前行。

我是小魔童哪吒,欢迎点赞关注收藏,下次见~

上一篇下一篇

猜你喜欢

热点阅读