关系型数据库与非关系型数据库
关系型数据库
采用关系模型来组织数据的数据库,关系模型就是二维表格模型。一张二维表的表名就是关系,二维表中的一行就是一条记录,二维表中的一列就是一个字段。
优点
- 容易理解
- 使用方便,通用的sql语言
- 易于维护,丰富的完整性(实体完整性、参照完整性和用户定义的完整性)大大降低了数据冗余和数据不一致的概率
缺点
- 磁盘I/O是并发的瓶颈
- 海量数据查询效率低
- 横向扩展困难,无法简单的通过添加硬件和服务节点来扩展性能和负载能力,当需要对数据库进行升级和扩展时,需要停机维护和数据迁移
- 多表的关联查询以及复杂的数据分析类型的复杂sql查询,性能欠佳。因为要保证acid,必须按照三范式设计。
数据库
Orcale,Sql Server,MySql,DB2
非关系型数据库
非关系型,分布式,一般不保证遵循ACID原则的数据存储系统。键值对存储,结构不固定。
优点
- 根据需要添加字段,不需要多表联查。仅需id取出对应的value
- 适用于SNS(社会化网络服务软件。比如facebook,微博)
- 严格上讲不是一种数据库,而是一种数据结构化存储方法的集合
缺点
- 只适合存储一些较为简单的数据