一、NoSQL
SQL VS NoSQL
1、名称
- SQL 主要是指关系数据库。
- NoSQL 主要是指非关系数据库。
2、存储结构
- SQL 是结构化的数据库,以表格的形式存储数据。
- NoSQL 是非结构化的数据库,以Key-Value(Redis),JSON格式文档(MongoDB),关系图(Neo4j),列类型(HBase)存储数据
3、数据之间的关联性
- SQL 的数据表之间具有主键-外键关联性。
- NoSQL 的数据之间相互独立,可以进行嵌套建立伪关联。
4、查询方式
- SQL 的查询语法是固定的,可以迁移到其它数据库进行查询。
- NoSQL 的查询语法不固定,每种数据库都有自身的语法
5、事务支持
- SQL 满足ACID原则(原子性,一致性,隔离性,持久性)
- NoSQL 满足基本的事务原则,但不完整
6、存储方式
- SQL 存储在 磁盘
- NoSQL 存储在 内存
7、扩展性
- SQL:垂直 (对分布式拆分不友好)
- NoSQL:水平 (对分布式拆分友好)
8、使用场景
- SQL
- 数据结构固定
- 相关业务对数据安全性、一致性要求高
- NoSQL
- 数据结构不固定
- 对一致性、安全性要求低
- 对性能要求高
二、Redis