关系型数据库
优势
保持数据的一致性
数据更新开销小
可以进行join等复杂查询
存在很多实际成果和成熟技术
劣势
大量数据写入
读可以主从模式,但是写通过增加机器要么可能产生数据不一致要么分库分表后不好join处理
为有数据更新的表做索引或表结构变更
为数据量比较大的表创建索引或者是变更其表结构会对表进行共享锁定,这期间数据无法更新
字段不固定时应用
每次反复进行表结构变更麻烦,预留容易忘
简单查询快速返回
sql需要解析,还有锁定解锁的开销。MySQL可以使用HandlerSocket变通方法
nosql数据库
优点
易于数据的分散
为了进行join关系型数据库不得不把数据存储在同个服务器上面,不利于分散。
希望顺畅对数据进行缓存处理
希望对数组类型数据进行高速处理
官网 nosql-database.org
分类
键值存储
临时性
保存在内存,速度快。但停止就丢失,无法超出内存大小。
永久性
保存在硬盘,性能有差距。
兼具型
首先保存在内存,满足特定条件保存在硬盘。特别适合数组类型数据。
面向文档
不定义表结构,但可以像定义了一样使用
可以使用复杂查询
面向列的数据库
关系型数据库是面向行的,对比如下
- 高扩展性(特别是写入处理)
- 应用十分困难