NoSQL
是什么
- not noly SQL:泛指非关系型数据库。这些类型的数据存储不需要固定的模式,无需多余的操作就可以横向扩展
- 出现问题:关系型数据库不能应付超大规模和高并发的SNS类型的web2.0纯动态网站
- 诞生目的:解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题,包括超大规模数据的存储。
能干吗
1、易扩展:关系型数据库存储数据需要用树、图之类结构来表示数据之间的关系,不容易扩展。而非关系型数据库之间没有关系
2、大数据量高性能:
- NoSQL数据之间无关系,数据库结构简单,因此具有非常高的读写性能
- 一般Mysql使用QueryCache[查询缓存],每次表的更新Cache就失效,是一种大粒度的Cache,在针对web2.0的交互频繁的应用,Cache性能不高。而NoSQL的Cache是记录级的,是一种细粒度的Cache,所以NoSQL性能高 【??】
3、多样灵活的数据模型:
NoSql无须事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系型数据库里面,频繁增删字段很麻烦
传统RDBMS VS NOSQL
RDBMS
- 高度组织化结构化数据
- 结构化查询语言SQL
- 数据和关系都存储在单独的表中
- 数据操作语言,数据定义语言
- 严格的一致性
- 基础事物
NOSQL
- 不仅仅是SQL
- 没有声明性查询语言
- 没有预定义的模式
- 键值对存储,列存储,文档存储,图形数据库
- 最终一致性,非ACID属性
- CAP定理
- 高性能,高可用性和可伸缩性
去哪下
- redis
- memcache
- Mongdb
怎么玩
- KV
- Cache
- persison
3V+3G
大数据时代3V
- 海量Volume
- 多样Variety
- 实时Velocity
互联网需要3G
-
高并发
-
高性能
-
高可扩