为什么要用Nosql
1、单机MySQL的时代!
90年代,一个基本的网站访问量一般不会太大,单个数据库完全足够!那个时候,更多的使用静态网页Html~服务器没有太大的压力。
思考一下,这种情况下,整个网站的瓶颈是什么?
1、数据量太大、一个机器放不下!
2、数据的索引(B+Tree),一个机器的内存放不下
3、访问量(读写混合),一个服务器承受不了~
只要你开始出现以上的三种情况之一的是时候,那么你就必须要晋级!
2、Memcached(缓存)+MySQL+垂直拆分
网站80%的情况都是在读,每次查询都要去查询数据库的话就十分的麻烦!所以我们要添加一层缓存来保证效率!
发展过程: 优化数据结构–> 文件缓存(io)–>Memcached(当时最热门的技术!)
大厂不缺人,缺人才(人才一般不进大厂,而要自己创业),所以你的对手一般都是安稳又踏实的人(老实人,在学校成绩中等偏上的那部分)
3、分库分表+水平拆分+MySQL集群
技术和业务在发展的同时,对人的要求也越来越高!
数据库本质:读、写
早些年MyISAM:锁表,十分影响效率!高并发下就会出现十分严重的锁问题
转战Innoodb:行锁
慢慢的就开始使用分库、分表来实现写的压力!MySQL在这个年代退出了表分区!这个并没有多少公司再用。
MySQL的集群,很好的满足了那个年代的需求
4、如今最近的年代
2010-2020 十年之间,世界发生了翻天覆地的变化;(定位,也是一种数据,音乐,热榜,都是动态的实时的一些数据)
MySQL等关系型数据库就不够用了!数据量很多,变化很快~!
– 例如一些动态的访问量,是先通过jason缓存,在定时更新到MySQL数据库
MySQL有的人,使用他来存储一些比较大的文件,例如 博客、图片!数据库表就很大,效率就低了!如果有一种数据库来专门处理这种数据,
MySQL压力就会变得十分小(研究如何处理这些问题!)大数据IO压力下,表几乎没法更改,更大!
目前的一些基本的互联网项目
为什么要使用NoSQL!
用户的个人信息。社交网络,地理信息。用户自己产生的数据,用户日志等等爆发性增长!
这时候我们就需要用到NoSQL数据库,NoSQL可以很好的处理以上的情况