1、传统关系型数据的优缺点
优势:
1)保持数据的一致性;
2)由于以标准SQL为前提,数据更新的开销小;
3)可以进行复杂查询,如join等;
4)技术比较成熟,有很多成功的案例。
劣势:
1)不利于大量数据的写入处理;
2)不易为有数据更新的表做索引或表结构变更;
3)不适合字段不固定时的应用;
4)在数据量很大时,存在对简单查询需要快速返回结果的处理慢的情况。
2、NoSQL数据库的优缺点
优势:
1)高可扩展性
2)分布式计算
3)低成本
4)架构灵活
5)没有复杂的关系
6) 子主题
劣势:
1)没有标准化
2)有效的查询功能
3)最终的一致性是不直观的程序
3、传统数据库遵循原则ACID
A(Atomicity):原子性,整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节
C(Consistency): 一致性,一个事务可以封装状态改变(除非它是一个只读的)。事务必须始终保持系统处于一致的状态,不管在任何给定的时间并发事务有多少。
I(Isolation): 隔离性,隔离状态执行事务,使它们好像是系统在给定时间内执行的唯一操作。如果有两个事务,运行在相同的时间内,执行相同的功能,事务的隔离性将确保每一事务在系统中认为只有该事务在使用系统。
D(Durability): 持久性,在事务完成以后,该事务对数据库所作的更改便持久的保存在数据库之中,并不会被回滚。
4、NoSQL数据库遵循原则BASE4、NoSQL数据库遵循原则BASE
Basically Availble --基本可用
Soft-state --软状态/柔性事务
Eventual Consistency --最终一致性
BASE思想主要强调基本的可用性,如果你需要高可用性,也就是纯粹的高性能,那么就要以一致性或容错性为
牺牲,BASE思想的方案在性能上还是有潜力可挖的。