关系型数据库
- 行列式表存储
- 结构化数据需要预定义数据类型
- 数据量和查询量都不大,如果数据量大要做分表
- 对数据一致性、完整性约束、事务性、可靠性要求比较高
- 支持多表 Join 操作
- 支持多表间的完整性,要删除 A 表的某条数据,可能需要先删除 B 表的某些数据
- SQL 的增删改查功能强
- 较为通用,技术比较成熟
- 大数据量性能不足
- 高并发性能不足
- 无法应用于非结构化数据
- 扩展困难
常用的有:Oracle、MySQL、PostgreSQL、SQLite
非关系型数据库
- 表结构较灵活,比如列存储,键值对存储,文档存储,图形存储
- 支持非结构化数据
- 有的不需要预定义数据类型,有的甚至不需要预定义表
- 支持大数据量
- 多数都支持分布式
- 扩展性好
- 基本查询能力,高并发能力比较强 (因为采用非结构化、分布式,并牺牲一致性、完整性、事务性等功能)
- 对数据一致性要求比较低
- 通常不支持事务性,或是有限支持
- 通常不支持完整性,复杂业务场景支持较差
- 通常不支持多表 Join,或是有限支持
- 非 SQL 查询语言,或类 SQL 查询语言,但功能都比较弱,有的甚至不支持修改删除数据
- 不是很通用,技术多样,市场变化比较大
常用的有
- 列式:HBase、Cassandra、ClickHouse
- 键值:Redis、Memcached
- 文档:MongoDB
- 时序:InfluxDB、Prometheus
- 搜索:Elasticsearch
SQL 和 NoSQL 是一个互补的关系,应用在不同的场景中
标签:关系,存储,NoSQL,支持,完整性,数据量,SQL,数据 From: https://www.cnblogs.com/KeFeng/p/17851733.html