存储结构
SQL:二维的表
NoSQL:Json、Key-Value等
查询
SQL支持联合查询,NoSQL不支持
事务
SQL支持事务,NoSQL对事务支持不理想
NoSQL
适用场景:
数据量很大或者未来会变得很大。
表结构不明确,且字段在不断增加
缺点:
事务关系支持薄弱
不支持复杂查询
小结
SQL
<1>关系数据库的特点是:
- 数据关系模型基于关系模型,结构化存储,完整性约束。
- 基于二维表及其之间的联系,需要连接、并、交、差、除等数据操作。
- 采用结构化的查询语言(SQL)做数据读写。
- 操作需要数据的一致性,需要事务甚至是强一致性。
<2>优点:
- 保持数据的一致性(事务处理)
- 可以进行join等复杂查询。
- 通用化,技术成熟。
<3>缺点:
- 数据读写必须经过sql解析,大量数据、高并发下读写性能不足。
- 对数据做读写,或修改数据结构时需要加锁,影响并发操作。
- 无法适应非结构化存储。
- 扩展困难。
- 昂贵、复杂。
NoSQL数据库
<1>NoSQL数据库的特点是:
- 非结构化的存储。
- 基于多维关系模型。
- 具有特有的使用场景。
<2>优点: - 高并发,大数据下读写能力较强。
- 基本支持分布式,易于扩展,可伸缩。
- 简单,弱结构化存储。
<3>缺点: - join等复杂操作能力较弱。
- 事务支持较弱。
- 通用性差。
- 无完整约束复杂业务场景支持较差。
原文:https://blog.youkuaiyun.com/han_cui/article/details/60765969