00:00
各位大家好,在前面的内容中呢,我们已经学完了用筛定GABBC实现对水平切分和垂直切分以及公共表的细分操作,那咱们下面呢,继续学习用筛定GBC的加操作,那大家要学什么呢?就是使用天径GBC实现对数据库的读写分离的操作,那我在里边给大家写下。使用sheding a d bc实现对应数据库的读写分离的这个操作,这是我们要讲内容,那在内容中呢,主要给大家讲这么几个东西,我在里边咱先列出来。首先第一个呢,给大家先来说一下,就是读写分离这个概念,也就是什么是读写分离,读写分离是怎么实现的,它的原理是怎么样,先让各位对读写分离这个概念有个理解,然后这个做完之后咱的第二部分。
01:06
就来在我们的my circle数据库中来配置一下这个。读写分离。这是第二部分,然后第三部分呢,咱就使用这个shading CD bc。对我们读写分离之后这些数据进行相关的操作,所以咱们在里边主要讲这么几个内容,那咱们先看第一部分关于读写分离的基本概念,就说一下什么是读写分离,给各位详细说一下。各位注意啊,其实读写分离呢,也是针对我们数据量大,针对我们数据库查询效率提高的一种解决方案,叫读写分离,那它具体怎么样,各位来看一下,在我这个笔记课件中有这么一个文件夹,里面有个读写分离的两部分,那咱把它打开,我们来看一下。
02:01
咱们把这个图打开,我们看一下,这是我给大家提供的针对读写分离的相关概念的说明。咱们先看第一张图,我这里写到大家看里面这段话,这里写的很清晰,说为了保证数据库产品的稳定性,很多数据库啊都要用这种双机热备功能,什么叫双机热备?说的通俗点也就是说我们现在有多台数据服务器,比如说这里边第一台服务器用于对外提供什么增删改业务的生产服务器,而第二台服务器提供什么独的操作,它的原理就是让你的主数据库也是叫master提供这个事务性操作,就是咱通俗说的乐删改操作,然后让我们的从数据库提供这个就是select查询操作,这过程就叫读写分离。那我现在把这段话给各位截过来,然后我在图上给大家再来画一下。然把这。
03:02
概念说的更明确一些。这个啊,我先拿过来。然后这个图我现在给大家再画的更简洁点,就更明确一点。咱们打开大家看啊,这里边有一张图,然后这个图我现在重新画一下,什么叫读写分离呢?说的点赞点,比如现在我们要对数据库进行这个相关的操作,那操作呢,无外乎就是增删改操作,而咱之前的方式,那我这操作针对的是不是某一个数据库,假如这是我的某一个DB数据库,咱之前不管你是做增加、修改、删除这些操作,这些都是我们的一个数据库把这实现,这是之前方式。但是这种方式大家会发现,如果说你数据量很大的话,咱都是一个数据库提供,肯定会造成严重的这种访问的性能问题,所以针对这种问题呢,我们后面就出现了咱刚才说的方案叫做读写分离,什么叫读写分离呢?给大家画一下,比如现在我这里边还是做我们的相应的操作。
04:14
操作嘛,外乎。自点操作,但现在呢,我下面不是有一个数据库,我可以有两个或者多个加单,现在画两个数据库。大家注意啊,有两个数据库,然后两个数据库怎么做呢?我来写一下,比如第一个我们叫DB1,第二个我们叫DB2,而DB1理解为是一个叫主数据库。就是它是主要的数据库,主数据库在我们这里面描述,咱可以叫这个master,这个比如说我们叫M,然后这里边这叫从数据库。从数据库,我们有一个词叫做sli。这是它的两个数据库,比如写一下这是M,这个是。
05:03
而现在什么叫读写分离呢?比如现在我这里边啊,我想做的是一个这个就是增加修改或者删除操作,那怎么做,让他就去查询我这个DB1这个主数据库。在里边写一下,就是我们说的增加。修改。删除操作,那这个操作去读取咱们的主数据库,而这个时候,比如你现在想做的是一个查询操作,那怎么做让他就去读取咱们这个从数据库,就是这个DB2这个数据库,这个过程就叫读写分离,但是过程中呢,有一个问题各位注意啊,比如说现在我做添加、修改、删除,咱是不是只操作主数据库,从数据库并没有操作吧?有同学可能会想,我现在向主据库中加了数据,那我读从数据库,这数据是不是读到?所以在这过程中呢,里边还要有一个操作,什么操作呢?就是这个主数据库和从数据库做的一个叫数据同步,或者说数据复制。
06:15
它有这么一个过程,也就是说你在主数据库中啊,加了数据库之后,然后这个数据呢,会同步到你的从数据库,所以咱读的话是可以读到的,这个就叫读写分离,是咱们说的一个基本的这么一个概念,比如我这里边写这句话,咱在最终把这话再读一遍,刚才第一次读各位可能不好理解,现在经过我的讲解之后,我觉得这句话应该很好理解了。什么意思呢?两台数据服务器当然可有多台,一台只做增删改操作,一台做独操作,让主数据库处理这个自常改操作,从数据库处理这个独的操作,而这过程中要进行数据复制,比如你像主数据库中做增加、修改、删除之后,那这数据要同步到你的从数据库中,当然咱可以实现一主一从,还有一主多从,或者说多主多从的效果,所以这个就是读写分离中一个基本的一个概念。咱们对它。
07:16
做了一个说明,然后把这张图给各位。截过来啊,就是刚才我画的这个图。就是你注意啊,里边什么叫毒性分离,所以咱们把这个做这个说明,然后说完之后各位再看一下我里边的第二张图,就是这张图是针对啊读写分离的原理做了一个讲解,那它原理是怎么样?邀各位对它也要有一个认识啊,咱注意啊主服务器嘛,做登删改操作,从服务器做长期操作,那这过程是怎么样的呢?就是它的原理是怎么样的,给各位我来讲解一下。那下面在这个位置给各位画一下它这个底层的一个原理。
08:00
给大家强调,比如说我现在我把这个先往下拉一点啊。比如说我现在呢,做到一个一主一从,或者说一主多层,咱以一主一从为例,现在我有一个主服务器。然后还有一个叫重复器,那这过程要怎么样的,就是它的原理是怎么实现的,大家看我图上应该画的很清晰,我们注意啊,在我们数据库中呢,有一个日志的功能叫做binlog日志,而blo是干什么的呢?就是现在比如说你要做读写分离的过程,需要先开启你的blog日志这个功能,而blog干什么,大家看这词日志。日志是不是记录信息呢?比如说我现在我要做这操作怎么做,你要先在这个主服务器中,就是主这个数据库中开启这个叫bin log日志这个功能。这个日志需要先。
09:00
开启,然后这日志是干什么的?说的简单点,它就是记录你当前数据库中这个增删改操作啊,记录你里边的增加、修改、删除操作,比如我现在向里边添加了数据,那这过程这blo中能记录到,当你做了修改里边能记录到,你做了删除,它里边也能记录到,它里边就需要做这么一个b log日志的一个功能,然后这个做到之后,比如我现在举个例子,我向里边做了这么一个添加操作。比如做了一个添加,我叫A,那在blo中就能记录你现在向的是哪个库,里边的哪个表,加了什么数据,数据是什么,在b log中都可以记录出来,这个叫blo功能,然后咱们现在这个我说的是我们的主服器,然后这是不是叫从服务器啊,而从服务器要干什么,看这里有个词叫什么,它要实时监控。
10:04
什么叫监控呢?就是现在我这从服务器要监控主服务器这个blog日志的变化啊,做一个实时的一个监控这个blog。日志的。这么一个变化,比如说现在我这里边一直看这日志有变化,当日志出做了内容,我从复记可以知道,他知道之后把里边日志信息就给它同步到我这个从服务器中,比如它进行一个读取,然后进行写入,比如现在我在B浪中。里边记录到了我向这个数据库中哪个表中加什么数据,然后从服务器能够读取到里面内容,把人内容读取之后,再从服务器中进行数据的同步。同步,所以这个过程就是我们说的组图复制的一个原理,它就是通过实时监控b log日志来完成里边这个数据同步功能,它会解析日志并且完成这个执行,最终在存器中实现数据同步。这是关于我们说的主从复制的一个原理。
11:15
然后这个说完之后,最后我在这个里边给大家把这过程咱们最终来总结一下,就刚才我提到的啊,首先第一个你知道什么叫主从复制,它就是一台服务器作为登删改操作,一台作为查询操作,咱可以实现一主一从,一主多从或者多主多从都可以做到。然后第二部分要各位知道,就是里边这个读写分离它这个原理。然后它的原理是什么呢?就是这里写到的就是实时监控你的b log日志的变化,如果日志发生变化,咱把日经行读取,然后再从服务器中进行执行,实现数据同步这个过程,这是它一个执行的原理,所以各位把这个给他知道,在实际中我们经常会用到就是一主一从或者一主多从,当然也会用到多主多从这种情况。
12:11
啊,这是我们说的关于里边的这么一个过程,包括啊,我把这个图截过来,因为这个说的就画的更明确啊,刚才我画的肯定也没有错,只画一个简图。然后把这个拿过来,所以这样的话我们就说完了读写分离的基本概念,大家从我的描述把这概念要理解,你要明确用读写分离的目的也是为了解决注意量过大,造成你的效率过低的问题。这个啊,咱就说完了,然后说完之后咱再说第三句话,希望各位记住啊,我这里也写到了,就是咱们用这个she定JDBC这个东西呢,它只一个做什么呢?第一个它并不是做到数据同步过程,数据同步还是要由咱们的买思和数据库做到,而它是干什么的,它是根据你的circleq的语义进行分析,通过这个分析之后,然后完成你不能操作。
13:07
那什么意思,给大家写一下啊。我想这个位置。She定JDBC,它是通过你的circle语句这个语义的这么一个。分析,然后实现你的这个就是读写分离的这么一个过程,那这句话什么意思,给大家具体解释一下啊,咱们来看一下这张图上,就是现在呢,我这里边有主服务器,有重复器,然后在它们的上面的这位置,就是我们那个she定JDBC啊,这里边就是she定JDBC。我写一下。然后SHEGBC干什么呢?比如现在我做增加操作,咱的这个语句是不是有个insert,我做修改是update,做删除式delete,那这个时候在BBC中做个判断,如果说你中有inser,有update,有delete,那怎么做,他要给我们把这个就是操作给你路由到这个主数据库中,当你在语中,比如有这个select这个语句。
14:17
咱是做查询,那怎么做,他就把你散操作给你路由到你这个DB2的这个数据库中,所以这个就是she定JBC帮我们做的事情,就是透明化这一过程,当你做更删改给你路由到。主数据库中,当你做查询操作,给你录入到这个从数据库中,这是由SHEJBC帮我们做到,不需要我们再去区分,它里边根据语分析帮咱们把这过程已经做到了,所以这个啊,就是咱们说的读写分离的基本概念,在实际中这种方式也是经常用到的,要各位知道什么是读写分离,包括读写分离的原理,通过实时监控并log日志。第三个你知道筛定JDBC在里边起到什么作用,就是它我这里写的明确点啊,它并不会。
15:11
做这个数据同步,它只是实现这个数据操作过程,而数据同步还是由咱们的MYSQL数据库去做到的。这个啊,我们做了一个概念性的一个说明。
我来说两句