为什么要用Nosql
大数据时代;一般的数据库无法分析处理!
1、单机MySQL的年代! 90年代
一个基本的网站访问量一般不会太大,单个数据库足够用!(静态网站HTML)
-
数据量如果太大、一个机器放不下、
-
数据的索引 300万 建立索引、一台机器内存放不下
-
访问量(读写混合)服务器承受不了
2、Memcached(缓存) + mysql + 读写分离
网站80%都在进行读操作、每次数据库查询比较麻烦、所以使用缓存保证效率。
发展过程:优化数据结构和索引--》文件缓存(IO)--》Memcached(当时最热门的技术)
3、分库分表 + 水平拆分+ MySQL集群
MySQL
本质:数据库(读、写)
Mysam:表锁,十分影响效率!高并发下会出现严重的锁问题
innodb:行锁
慢慢出现分库分表来解决写的压力!
4、如今
MySQL等关系型数据库不够用了,数据量很多,变化快~!
为什么要用Nosql?
用户的个人信息,社交网络,地理位置。用户自己产生的数据,用户日志等等
Nosql数据库可以解决这些问题。
Nosql
解耦!
-
方便扩展(数据之间没有关系,很好扩展!)
-
大数据量高性能(redis一秒写8w,读取11w,Nosql的缓存记录)
-
数据类型是多样型的、不需要事先设计数据库!随取随用!如果数据量十分大的表,,
-
传统RDBMS和NOSQL
传统的RDBMS
- 结构化组织
- SQL
- 严格的一致性NoSQL
- 不仅仅是数据了解:3V+3高
大数据时代的3V:主要是描述问题的
-
海量Volume
-
多样Variety
-
实时Velocity
大数据时代的3高:主要是对程序的要求
-
高并发
-
高可扩
-
高性能
-