关系型与非关系型数据库的优缺点
关系型数据库
特点
- 基于单一关系模型,结构化存储,有完整性约束
- 通过二维表建立数据之间的联系
- 采用结构化查询语言(SQL)做数据读写
- 操作保存数据的一致性
优点
- ☆通过事务处理保持数据的一致性
- 数据更新的开销很小
- 可以进行Join等复杂查询
- 20多年的技术历程,技术成熟
缺点
- 数据读写必须经过sql解析,大量数据、高并发下读写性能不足
- 为保证数据一致性,需要加锁,影响并发操作
- 无法适应非结构化的存储
- 大量数据集中到一台服务区处理,使服务器不堪重负
- “阻抗失谐”,即数据库中存储的对象与实际的对象实体有一定的差别
- 扩展困难
- 数据库庞大,价格昂贵
NOSql数据库
特点
- 非结构化的存储。
- 基于多维关系模型。
- 部署容易,开源免费,成本低
优点
- 处理高并发、大批量数据的能力强
- 支持分布式集群,负载均衡,性能高
- 解决“阻抗失谐”问题
- 内存级数据库,查询速度快
- 存储格式多,支持key-value形式、文档形式、图片形式
- 没有多表连接查询机制的限制,扩展性高
缺点
- 技术起步晚,维护工具以及技术资料有限
- 不支持sql工业标准
- 没有join等复杂的连接操作
- 事务处理能力弱
- 没有完整性约束,对于复杂业务场景支持较差
典型的NoSQL数据库
临时性键值存储(memcached、Redis)、永久性键值存储(ROMA、Redis)、面向文档的数据库(MongoDB、CouchDB)、面向列的数据库(Cassandra、HBase)