NoSql入门概述

首先应该说的是:所有天上飞的理念都会有落地实现。所以我觉得还是从数据存储处理的发展简史来引入NoSQL更为贴切,也能让自己有更细致的认识。
数据存储与处理技术的发展有这么几个时间跨度

1.单机MySQL的美好时代
2.Memcached(缓存)+MySQL+垂直分离
3.MySQL主从读写分离
4.分库分表+水平拆分+mysql集群
5.MySQL的扩展性瓶颈
6.今天的架构
7.为什么使用NoSQL

1.单机MySQL的美好时代


在90年代,一个网站的访问量并不大,用单个数据库完全可以轻松应对,那个时候,更多的都是静态网页,动态交互型的网站并不多。
网站的架构设计如下图所示:

早期动态网站架构图.png

大学期间我们大都用的是这个简单原始的架构来做网站,在数据量不是很大的情况下,是完全应付的来的。

那么上述架构能带来什么问题呢?

1.数据量太大,一个机器放不下时。
MySQL5.7单表500w数量已经很棒,但是300w时就应该优化了。
2.数据的索引(B+Tree)一个机器的内存放不下时。
索引是加速数据库访问效率的一种机制,但是索引是存储在内存当中的,如果数据量太大,那么意味着内存中存储的索引也会很大,在每一次加入数据的时候,数据库都需要维持索引,这样假设索引跟数据量同处一个机器,而不做优化,那么数据访问将非常之缓慢。
3.访问量(读写混合)一个实例并不能承受。

如果满足不了上述当中的1-3个,请演化。

2.Memcached(缓存)+MySQL+垂直分离


2.1 Memcached(缓存)

随着访问量的上升,几乎大部分使用MySQL架构的网站在数据库上都出现了性能问题,web程序不再仅仅关注在功能上,同时也开始追求性能,程序员们开始大量的使用缓存技术来缓解数据库的压力,优化数据库的结构和索引,开始比较流行的是通过文件缓存来缓解数据库的压力,但是当访问量继续增大的时候,多台web服务器通过文件缓存不能共享,大量的小文件缓存也带来了比较高的IO压力,在这个时候,Memcached(缓存)自然成为一个非常时尚的技术产品。
缓存的实质是替数据库挡了一层。
频繁被访问的数据可以被放置于缓存当中,以供频繁访问。

架构图如下所示:

Memcached(缓存)+MySQL+垂直分离.png

2.2 垂直拆分

什么是垂直拆分?
举个例子,淘宝的数据库服务器是要进行定性 的,比如说有四台数据库服务器,两台进行买家数据的存储,两台进行卖家数据的存储,将原本一台数据库实例需要做的事情,均摊给四台服务器。DB数据操作能力会有很大提升。

3. MySQL主从读写分离

1 什么是主从复制?
多搞几个数据库来存储数据,假设有三台数据库,一主二仆,即一台主服务器,两台从服务器,当新增数据至主数据库服务器的时候,那么同时复制此数据进入到从数据库服务器当中。数据复制是为了容灾备份,缓存备份,保证数据的完整性。
2 什么是读写分离?
增删改是写,查为读。
读就去职能为被查询的数据库服务器去读。
写就去职能为写数据的数据库服务器去写。
分工明确,结合缓存能实现性能的一大提升

架构图如下所示:

主从复制与读写分离.png

其中的M是master 即主DB Server ,S为slaver即从属DB Server,各有分工。
写操作在 M,读操作在S。S的数据是从master方复制的。

4.分库分表+水平拆分+MySQL集群


承接主从复制,读写分离,以及Memcached的使用,这时MySQL主库的写压力开始出现瓶颈,而数据量的持续猛增,由于MYISAM使用表锁,在高并发下会出现严重的锁问题,大量的高并发MySQL应用开始使用InnoDB引擎代替MYISAM,由于数据量的指数级增长,只能继续对架构进行演变。
与此同时,开始流行使用分库分表来缓解写压力和数据增长的扩展问题。这个时候,MySQL推出了还不太稳定的表分区,这也给技术实力一般的公司带来了希望。虽然MySQL推出了MySQL cluster集群,单性能也不能很好的满足互联网的要求,知识在高可靠性上提供了非常大的保证。

1 基本思想之什么是分库分表?
从字面上简单理解,就是把原本存储于一个库的数据分块存储到多个库上,把原本存储于一个表的数据分块存储到多个表上。
2 基本思想之为什么要分库分表?
数据库中的数据量不一定是可控的,在未进行分库分表的情况下,随着时间和业务的发展,库中的表会越来越多,表中的数据量也会越来越大,相应地,数据操作,增删改查的开销也会越来越大;另外,由于无法进行分布式式部署,而一台服务器的资源(CPU、磁盘、内存、IO等)是有限的,最终数据库所能承载的数据量、数据处理能力都将遭遇瓶颈。
3 分库分表的实施策略。
分库分表有垂直切分和水平切分两种。
3.1 何谓垂直切分:
即将表按照功能模块、关系密切程度划分出来,部署到不同的库上。例如,我们会建立定义数据库workDB、商品数据库payDB、用户数据库userDB、日志数据库logDB等,分别用于存储项目数据定义表、商品定义表、用户数据表、日志数据表等。
3.2 何谓水平切分:
当一个表中的数据量过大时,我们可以把该表的数据按照某种规则,例如userID散列,进行划分,然后存储到多个结构相同的表,和不同的库上。例如,我们的userDB中的用户数据表中,每一个表的数据量都很大,就可以把userDB切分为结构相同的多个userDB:part0DB、part1DB等,再将userDB上的用户数据表userTable,切分为很多userTable:userTable0、userTable1等,然后将这些表按照一定的规则存储到多个userDB上。

5.MySQL的扩展性瓶颈


视频、图片大数据量的数据时不能存储到数据库当中的,假设一个视频1.8G,MySQL中肯定是不能进行存储的。
下图是淘宝分享出来的一种架构方式:



淘宝分享-高性能网站架构.png.png

6.今天的架构


答案就是NoSQL。
NoSQL(NoSQL = Not Only SQL),意为"不仅仅是SQL"。泛指非关系型数据库。随着互联网2.0网站的兴起,传统的关系型数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合以及多中数据带来的挑战,尤其是大数据应用难题,包括大规模数据的存储。
例如:谷歌活着Facebook每天为他们的用户收集万亿比特的数据。这些数据的存储不需要固定的模式,无需多余的操作就可以横向扩展。

下一节继续!

博客搬家:大坤的个人博客
欢迎评论哦~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349

推荐阅读更多精彩内容