SQL vs NoSQL

Posted by William Basics on Sunday, November 13, 2022

SQL vs NoSQL

前提

本篇以server型数据库(比如,SQL Server,MySQL,MongoDB等)作为讨论的前提,结合当前的技术发展(2022年底),请参考时注意时效性。 😃

对照表

SQL NoSQL
类型 关系型 非关系型
Schema 严格的schema设计以及数据规范化 宽松而多样的设计,非结构化和半结构化数据;数据通常是非规范化的
语言 标准化查询语言 还未形成统一的标准
查询的支持 可以支持十分复杂的查询 难以实现复杂查询
应用开发 需要预先完成数据schema的设计,相比之下,适合数据库表结构不常变更的情况。 无需定义schema,相对灵活,可以兼容各种异形数据。
可扩展性 纵向扩展,性能扩展主要依靠升级数据库所在服务器硬件(CPU,RAM,硬盘)来完成。相对昂贵。 横向扩展,性能扩展主要依靠部署等多的服务节点来完成。相对便宜。
数据复制 缺乏内置方法来支持 原生支持数据的复制
安全性 具有内置的十分成熟的安全性管理机制。 普遍缺乏安全性, 而且不具备细粒度的访问控制能力
数据一致性 强一致性,遵循ACID,任何时间点,数据库中的数据都是一致的。 弱一致性(最终一致性)。数据最终将会在某个不确定的时间点上一致。
技术支持 海量的参考资料以及庞大的社区支持 相对来说,资料较少,社区规模也较小

🔚