NoSQL
一.NoSQL
1.什么是NoSQL
NoSQL:not only SQL,非关系型数据库
NoSQL是一个通用术语
- 指不遵循传统RDBMS模型的数据库
- 数据是非关系的,且不使用SQL作为主要查询语言
- 解决数据库的可伸缩性和可用性问题
- 不针对原子性或一致性问题
注:非原子性:字段可拆
2.为什么使用NoSQL(NoSQL优点)
- 高并发读写
- 高存储量
- 高可用性
- 高扩展性
- 低成本
3.NoSQL和关系型数据库对比
对比 | NoSQL | 关系型数据库 |
---|---|---|
常用数据库 | HBase、MongoDB、Redis | Oracle、DB2、MySQL |
存储格式 | 文档、键值对、图结构 | 表格式,行和列 |
存储规范 | 鼓励冗余 | 规范性,避免重复 |
存储扩展 | 横向扩展,分布式 | 纵向扩展(横向扩展有限) |
查询方式 | 结构化查询语言SQL | 非结构化查询 |
事务 | 不支持事务一致性 | 支持事务 |
性能 | 读写性能高 | 读写性能差 |
成本 | 简单易部署,开源,成本低 | 成本高 |
4.NoSQL的特点
- 最终一致性
- 应用程序增加了维护一致性和处理事务等职责
- 冗余数据存储
- NoSQL != 大数据
NoSQL产品是为了帮助解决大数据存储问题
大数据不仅仅包含数据存储的问题
Hadoop
Kafka
Spark, etc
5.NoSQL基本概念
-
三大基石
CAP、BASE、 最终一致性