{eval=Array;=+count(Array);}
NoSQL和SQL看上去很像,以至于不少人把两者混为一谈,其实这两者完全是两类东西,虽然在开发中经常看见两者配合使用,但两者的定位不同,服务场景也是不同的。
随着NoSQL数据库的兴起,不少人觉得未来NoSQL会取代传统的数据库,也有人认为NoSQL和SQL最终会融合在一起。未来的事情不好猜测,但在这里我们可以分析下两者的定位。
1、NoSQL不能光看字面意思,不能理解为“没有SQL”,其实它是“Not Only SQL”的简称,它是非关系型数据库的统称,它的特点就是:非关系型、半结构化、分布式、无ACID特性。
NoSQL代表有:Redis、MemCache、MongoDB等。
2、SQL本意是指结构化查询语句,它其实是一种特殊的编程语言,是用于关系型数据库的查询语言。只不过现在很多不严谨的开发者将SQL视为数据库的统称。
SQL数据库代表有:MySQL、Orache、SQL Server。
1、NoSQL数据库
存储数据不需要特定的模式;
使用类JSON格式的文档(半结构化)来存储键值对;
没有 原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)这4种特性。
2、SQL数据库
存储数据前需明确定义字段模式;
使用表来存储结构化的数据;
保证数据的事务性、一致性要求。
关系型数据库更适合存储结构化数据、数据要求严谨,数据模式是固定不变的。数据是存储在硬盘上的,数据量过大时操作速度会受到影响。
在开头时就提及NoSQL与SQL的争议,我更倾向于说未来NoSQL和SQL可能会融合在一起。在如今的技术架构中我们通常也都是这样去搭配使用的:SQL数据库作为最终数据落地存储方案,而NoSQL则用来缓存热点数据,提升数据查询和操作速度。
以上就是我的观点,对于这个问题大家是怎么看待的呢?欢迎在下方评论区交流 ~ 我是科技领域创作者,十年互联网从业经验,欢迎关注我了解更多科技知识!
感谢邀请!
作为一名IT从业人员,我来回答下这个问题。
NOSQL是非关系型数据库,通常是指没有ACID的特性,没有表结构,非关系型的,
SQL是大家所熟知的数据库,由表构成,数据严谨。
NOSQL的代表数据库是Redis、mongdb。Redis大家都不陌生,通常作为一种热缓存存在于项目过程中,Redis中是按照键值对进行存储数据的,方便读取与修改。缓存的目的就是用于减少与数据库之间的交互过程。而Mongdb的话是一种Bson文档存储格式,mongdb存储的时候插入删除修改操作可以快速大批量的完成,通常作为接口间的缓存。
NOSQL的业务场景一般都是没有严谨的表结构,只是方便数据的插入修改,后期对数据存储的表可能会进行修改。
而sql的代表数据库就是MySQL、oracle等大型应用型数据库,这一类数据库都有严谨的表结构,一经生成,修改表是很困难的,使用的业务场景就是大型数据存储,保证事务一致性的进行。数据模式固定不变,数据库更稳定。
希望回答对您有所帮助。
我本人从事多年互联网Java开发,感兴趣的朋友可以关注私聊,共同努力,共同进步。
谢谢!
0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答10
回答0
回答