NoSql(一)入门概述,数据库发展史
1互联网时代背景下大机遇,为什么用nosql
1.1 单击mysql的美好年代
那时候网站访问量不大, 用单个数据库完全可以应付.动态交互不多
上述架构下,数据库的瓶颈?
1) 数据量的总大小,一个机器总会放不下
2) 数据的索引(B+tree)一个机器内存放不下时,
3) 访问量(读写混合)一个实例不能承受
1.2 Memcached(缓存)+mysql + 垂直拆分
1.3 mysql主从, 读写分离
1.4 分库分表,+水平拆分+mysql集群
热数据, 冷数据拆分
1.5 mysql扩展的瓶颈
二进制字段太多怎么办
1.6 今天现在怎么办
7 为什么要用nosql
2 . NoSQL是什么?
NoSql = not only sql 不仅仅是sql
泛指非关系型数据库,随着互联网2.0 网站的兴起, 传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题, 而非关系型数据库则由于其本身的特点得到了非常迅速的发展.nosql数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题,包括超大规模数据的存储
例如谷歌 facebook 这些类型的数据存储不需要固定的模式, 无需多余操作就可以横向发展.
3. nosql 能干嘛?
3.1 易扩展
nosql数据库种类繁多, 但是一共共同点就是去掉关系型数据库的关系型的特性
数据之间无关系, 这样就非常容易扩展 也无形之间, 在架构的层面带来了可扩展的能力
3.2 大数据量高性能
nosql数据库都具有非常高的读写性能, 尤其在大数据量下, 同样表现优秀
它得益于它的无关系型,数据库结构简单
一般mysql 使用query cache 每次表的更新cache就会失效, 是一种大力度的cache
而 nosql 的cache是记录级的, 一种细粒度的cache,所以nosql 在这个层面上, 性能就高很多
3.3 多样灵活的数据模型
nosql无需事先为要存储的数据简历字段, 随时可以存储自定义的数据格式, 而在关系数据库中是噩梦, 要改表
3.4 传统RDBMS VS NOSQL
RDBMS 特性:
-高度组织化结构化的数据 ,
- 结构化查询语句sql,
-数据和关系都存储在单独的表中,
- 数据操控语言,数据定义语言
- 严格的一致性, 基础事务
NoSQL的特性:
- 代表不仅仅是sql
- 没有声明性查询语言
- 没有预定义的模式
-键值对存储, 列存储, 文档存储, 图形数据库
- 最终一致性, 非acid属性
-cap定理
- 高性能, 高可用, 可伸缩性
4. 多种类型
Redis 或者 tair 数据类型丰富
memcache 专注高速缓存
mongdb
5.如何使用 :
kv 键值对
cache 缓存
persistence 持久化