为什么要使用NoSQL
大数据时代:大数据一般的数据库无法进行分析处理了
- 单sql时代:一个基本的网站访问量一般不会太大,单个数据库即可;服务器压力较小
- APP-DAL-MySQL
- 缺点:
- 数据太大的时候,一个机器放不下
- 数据索引(B+Tree),一个机器放不下(超过300万的时候必须建立索引)
- 访问量(读写混合)一个服务器承受不了
- Memcached+MySQL +垂直拆分(读写分离) 缓存
-
APP-DAL-(MySQL1,MySQL2(写内容),MySQL3)
-
-
为了减轻数据库的压力,可以使用缓存(缓存主要是为了解决读的问题)
-
发展过程:优化数据结构和索引–>文件缓存(IO)–>Memcached
-
- 分库分表 + 水平拆分 + MySQl集群
本质:数据库的读写
早些年的MyISAM:表锁,十分影响效率,高并发下会发生严重的锁问题
转战Innodb:行锁
主键开始使用分库分表来解决写的压力,MySQL在当时推出了表分区(但是使用较少,更多的是集群) - 近期
- 新型数据库:图型 ;json
- 当mysql存储一些很大 的文件的时候,效率会很低
- 大数据的IO压力下,表几乎无法更改
- 目前基本的互联网项目
- 为什么使用NoSQL
- 爆发式增长的数据无法使用关系型数据库(如用户的个人信息,社交网络,地理位置,用户日志等等),NoSQL可以处理这些情况