Nosql概述

HeJin大约 2 分钟数据库技术Redis

单机MySQL的演进

大数据时代,一般的数据库无法进行分析处理了。

1、单机MySQL的时代!

90年代,一个基本的网站访问量一般不会太大,单个数据库完全足够。

那个时候,更多地去使用静态网页html。服务器根本没有太大的压力。

思考一下,这种情况下:整个网站的瓶颈是什么?

(1)数据量如果太大,一个机器放不下了!

(2)数据的索引(B+ Tree)。300万就一定要建立索引。一个机器内存也放不下。

(3)访问量(读写混合)。一个服务器承受不了。

只要出现了以上的情况之一,那么你就必须要晋级!

2、Memcached(缓存) + MySQL + 垂直拆分(读写分离)

网站80%的情况都是在读,每次都要去查询数据库的话就十分的麻烦。所以说我们希望减轻数据库的压力,可以使用缓存来保证下效率!

发展过程:优化数据结构和索引 ——> 文件缓存(IO) ——> Memcached(当时最热门的技术)

3、分库分表 + 水平拆分 + MySQL集群

技术和业务发展的同时,对人的要求也越来越高!

本质:数据库(读、写)

早些年MyISAM:表锁,十分影响效率!高并发下就会出现严重的锁问题。

转战Innodb:行锁。

慢慢地就开始使用分库分表来解决写的压力。MySQL在那个年代推出了表分区。这个并没有多少公司使用!

MySQL的集群,很好地满足了那个年代的所有需求!

4、如今最近的年代

2010-2020十年之间,世界已经发生了翻天覆地的变化。(定位,也是一种数据。)

MySQL等关系型数据库就不够用了!数据量很大,变化很快!

MySQL有使用它来存储一些比较大的文件:博客、图片!数据库表很大,效率就低了。如果有一种数据库来专门处理这种数据,MySQL的压力就会变得十分地小了(研究如何处理这些问题)。大数据的IO压力下,表几乎没法修改。

为什么要用Nosql

用户的个人信息,社交网络,地理位置。用户自己产生的数据,用户日志等等爆发式增长。

这时候我们就需要使用Nosql数据库,可以很好地处理以上的情况。