{eval=Array;=+count(Array);}

问答专栏Q & A COLUMN

【必知必会】面对不同的业务场景,如何选择NOSQL和SQL?

luqiuwenluqiuwen 回答0 收藏1
收藏问题

2条回答

yankeys

yankeys

回答于2022-06-28 14:33

NoSQL和SQL看上去很像,以至于不少人把两者混为一谈,其实这两者完全是两类东西,虽然在开发中经常看见两者配合使用,但两者的定位不同,服务场景也是不同的。

随着NoSQL数据库的兴起,不少人觉得未来NoSQL会取代传统的数据库,也有人认为NoSQL和SQL最终会融合在一起。未来的事情不好猜测,但在这里我们可以分析下两者的定位。

什么是NoSQL?什么是SQL?

1、NoSQL不能光看字面意思,不能理解为“没有SQL”,其实它是“Not Only SQL”的简称,它是非关系型数据库的统称,它的特点就是:非关系型、半结构化、分布式、无ACID特性。

NoSQL代表有:Redis、MemCache、MongoDB等。

2、SQL本意是指结构化查询语句,它其实是一种特殊的编程语言,是用于关系型数据库的查询语言。只不过现在很多不严谨的开发者将SQL视为数据库的统称

SQL数据库代表有:MySQL、Orache、SQL Server。

NoSQL与SQL数据库的各自特点

1、NoSQL数据库

  • 存储数据不需要特定的模式;

  • 使用类JSON格式的文档(半结构化)来存储键值对;

  • 没有 原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)这4种特性。

NoSQL数据库更适合存储非结构化数据、不确定需求的数据,数据是碎片化的。数据一般是存储在内存中的(个别的支持持久化到硬盘上),操作速度极快。

2、SQL数据库

  • 存储数据前需明确定义字段模式;

  • 使用表来存储结构化的数据;

  • 保证数据的事务性、一致性要求。

关系型数据库更适合存储结构化数据、数据要求严谨,数据模式是固定不变的。数据是存储在硬盘上的,数据量过大时操作速度会受到影响。

NoSQL与SQL数据库如何选择?

在开头时就提及NoSQL与SQL的争议,我更倾向于说未来NoSQL和SQL可能会融合在一起。在如今的技术架构中我们通常也都是这样去搭配使用的:SQL数据库作为最终数据落地存储方案,而NoSQL则用来缓存热点数据,提升数据查询和操作速度。


以上就是我的观点,对于这个问题大家是怎么看待的呢?欢迎在下方评论区交流 ~ 我是科技领域创作者,十年互联网从业经验,欢迎关注我了解更多科技知识!

评论0 赞同0
  •  加载中...
roland_reed

roland_reed

回答于2022-06-28 14:33

感谢邀请!

作为一名IT从业人员,我来回答下这个问题。

NOSQL是非关系型数据库,通常是指没有ACID的特性,没有表结构,非关系型的,

SQL是大家所熟知的数据库,由表构成,数据严谨。

NOSQL的代表数据库是Redis、mongdb。Redis大家都不陌生,通常作为一种热缓存存在于项目过程中,Redis中是按照键值对进行存储数据的,方便读取与修改。缓存的目的就是用于减少与数据库之间的交互过程。而Mongdb的话是一种Bson文档存储格式,mongdb存储的时候插入删除修改操作可以快速大批量的完成,通常作为接口间的缓存。

NOSQL的业务场景一般都是没有严谨的表结构,只是方便数据的插入修改,后期对数据存储的表可能会进行修改。

而sql的代表数据库就是MySQL、oracle等大型应用型数据库,这一类数据库都有严谨的表结构,一经生成,修改表是很困难的,使用的业务场景就是大型数据存储,保证事务一致性的进行。数据模式固定不变,数据库更稳定。



希望回答对您有所帮助。

我本人从事多年互联网Java开发,感兴趣的朋友可以关注私聊,共同努力,共同进步。

谢谢!

评论0 赞同0
  •  加载中...

最新活动

您已邀请0人回答 查看邀请

我的邀请列表

  • 擅长该话题
  • 回答过该话题
  • 我关注的人
向帮助了您的网友说句感谢的话吧!
付费偷看金额在0.1-10元之间
<