00:02
好,咱们把maca安装启动完成之后呢,哎,先不着急使用它啊,咱们先带各位啊了解一下maca相关概念啊,虽然咱们呃有去学过my cat呃,一点多版本的同学应该对这些概念有所了解了,但是还是带着各位咱们再明确一下,因为就是这样啊,咱们什么呢,想要把这个一个工具,一个框架,一门语言了解清楚,你去使用它,你呼应它,这是必须要的,但是呢,相关概念咱们也必须要明确啊,就相当于啊,如果喜欢看呃武侠作品的同学应该都会知道啊,咱们。呃,练习一门武功啊,学习一门武功需要有内功,还有招式啊,光有招式光会用啊不够啊,这块呢,哎,你没有什么的办法表现出它的一个什么呢,更大的威力啊,如果光会内功啊,不懂招式,你也使不出来它的效果,所以这块呢得是相互配合啊,咱们哎学习买catd也一样啊,带着各位先去了解一下它的这些概念,首先第一个概念啊,分库分表啊,其实这块呢,哎,真正咱们对数据库做分布式操作的时候,分库分表往往是同时在实现啊,咱们看一下它是什么,就是按照一定规则把数据库中的表哎拆分成哎多个带有数据库实例数,物理库物理表访问路径的分表,把这个概念对不对是对的啊,官方网站写的概念,但是啊,就是不那么好理解对吧?啊,我带着各位再解读一下吧,啊其实分库分表呢啊,就是对。
01:42
咱们的什么呢?啊,这个互联网应用的一种什么优化啊,为什么这么说啊,这个咱们随便举个例子,我就是一个简单的财务系统啊,只给系统中的几个人去用啊,只给咱们的什么公司里面几个人去用,那就没有必要做什么分库分表对吧?一个数据库哎几张表搞定了啊,这块呢,而且这几个人还会用的,还非常顺手啊,非常好用,但是但凡放在互联网上的应用啊,无论是你是哎这个网站也好,或者是咱们的哎APP应用也好啊,这个随着用户量的增多,随着访问量的增大啊,这块的高访量高并发出现的情况下,哎,对数据库有压力啊。
02:23
哎,我这个一个数据扛不住怎么办?是不是得什么呢?哎,咱们得考虑,哎这个买思库数据库的性能得考虑咱们数据库的一个瓶颈啊,这块的数据量存在,呃,这个数据太大了,哎访问都会影响,那怎么办?哎咱们就可以做分库分表,分库很好理解啊,简单举个例子,比如说哎,我一个电商项目还是啊这个一一边跟啊各位解读,一边给各位画一下啊,比如说我这是一个完整的一个呃电商项目啊,但是我这个电商项目呢,咱们知道啊,但凡放在互联网上的应用,咱们为了考虑它的高可用性,为了考考虑它的易扩展性,还有这个易于维护的这种特点啊,咱们采用了什么?是不是微服架构,这是一个完整的呃项目,哎,我给它拆成一个一个可以独立什么的部署,独立什么的运行的,哎,微服务啊,咱们拆分成一个一个微服务,比如说举个例子,电商平台啊,咱们可以拆成一个什么,是不是用户的服务模块,对吧,专门对用户进行一个增删。
03:23
改查对用户进行一个一系列的维护操作啊,这块呢提供相应的服务,那这块呢,用户这个相关的,呃,这个咱们系统对应的肯定有数据表啊,这个数据表我就可以单独放在一个数据库里面啊,这块只去啊这个存储我用户相关数据啊这块呢,比如说我还有一个什么呢?订单模块,那订单模块是不是也可以咱们单独创建一个数据库,各位一定要注意啊,单独创建的数据库也是要部署在不同主机上的,说白了就是哎,在不同主机不同节点上面的,哎,这个相关的数据库。啊,这块呢,我在创建一个库,专门存订单信息啊,这叫什么分库啊,这是什么呢?缓解咱们这个单个数据库的压力啊,根据咱们的业务场景进行一个,诶把这个表进行一下什么的区分,那还有就是什么呢?分表啊,分表其实也是比较长的,比如说咱们举个例子,就是还是刚刚这个场景咱们都知道,哎,在咱们的电商平台啊,你什么呢?就是卖货的,就是卖产品的,那你的订单数量一定不少。
04:27
所以这块呢,哎,咱们会什么呢?会有很多的订单出现,随着用户的增加,随着用户在我平台上购买产品的次数越来越多,你订单数量是不是也会越来越大,对吧?如果你就存在一个数据库里面,一张表是不是总会达到它的瓶颈啊,那怎么办?哎咱们什么呢?最好是把我这个什么,这张表我也拆分出来啊,咱们怎么做的?哎,分表就是在我后面又是啊创建几个主机,这几个主机里面,哎咱们去什么呢?哎去安装好啊,安装好部署好咱们的MYSQL环境,在这个什么呢?咱们几个主机里面分别安照规则,哎存我一部分的,哎这个什么呢?哎,咱们的订单信息啊,完成咱们的一张表的一个数据拆分,这叫分表。
05:15
啊,这是啊,咱们对应的什么呢?诶分库分表相关操作,那这块呢,哎各位可以看到,是不是一看就会觉得很复杂了,对吧?那我这个应用模块访问数据库也好,访问咱们这个分的表也好啊是不是访问就是呢,费点劲了,那就要诶请出咱们,诶这个这啊咱们这门课的主角,哎my cat出现啊帮咱们解决这个麻烦事情啊这块呢,哎,我都是把请求啊咱们的SCO发给my cat,由my cat帮咱们进行个拦截转发,转发到它所对应的数据节点,也就是咱们所说的哎这个其买cat这个主机。啊,把这个请求发过去就可以啊,这块呢,咱们了解一下这个分库分表相关相关的概念啊。
06:00
好,那继续再往下该什么了,逻辑库了啊,其实逻辑库啊,下面几个概念,逻辑库逻辑表物理库,物理表可以说是什么呢?哎,是一块儿去理解它啊,咱们一个个来啊,哎,首先第一个哎逻辑库就是什么?哎,咱们数据库代理中的数据库啊,你说老师这有点绕啊,这是绕口令啊各位不是啊,数据库代理谁啊,咱们就可以直接把所有的,咱们待会儿看到这个什么呢?概念中的所有的数据库代理全都给他转化成谁买cat就好。啊,这个数据库代理说的就是my cat,就是咱们的数据库中间键,也就是咱们的my cat中的数据库。啊,这块呢,哎,这就是咱们所说的逻辑库,什么叫逻辑库就在什么逻辑中,在咱们买cat中存在,但是真实物理中是不存在的啊,各这块咱们要明白啊,而且咱们的这个,哎,我创建的这个逻辑库,它可以包含多个什么的逻辑表啊,咱们的逻辑库跟下面的逻辑表是包含关系的啊这个怎么去理解它就是哎通过什么呢?还是给各位啊,咱们一边解读一边画一下啊,通过我搭建这个买cat这个什么的数据库中间件咱们就可以,哎这个给咱们后面的数据库,真实数据库是不是穿个马甲对吧?你说哎我的应用是看不到后面数据库的,看到的是你买cat啊,买cat就相当于是一个哎咱们的数据库,那这个库就是什么呢?咱们所说的逻辑库。
07:28
诶,这是我对应的逻辑库啊,在咱们的MYSQL里面,哎物理上,哎后面MYSQL是没有这个数据库的啊这块儿呢,哎咱们就在这,比如说我这个数据库啊,咱们就叫什么呢?啊随便起个名啊,就叫A库吧,哎,我这个A库,哎这个什么呢?哎这个应对咱们的什么呢?这个应用程序啊,给发过来的这些思库语句,那这块呢,哎,那它真实的数据啊,真实的数数据库在哪儿,各位是在咱们的MYSQ啊,这个在这儿买SQL里面的啊,就相当于说在我买SQ外面套了一层啊,在这套了一层啊,咱们的还是用这样画啊,咱们在这个MY色扣数据库外面套了一层马甲,穿了一个什么的外套,这个外套就是咱们的买cat它的标明啊,标明里面就是创建了一个一个的,哎,咱们的逻辑库啊,在逻辑上存在的,哎这个咱们发请求到逻辑库啊,那这个逻辑库肯定要有映射它的什么的,物理的真实数据库,那物理的真实数据库就在咱们,哎这个MY思Q里面,比如说咱们起个名它叫。
08:29
D,诶B库啊,这个A库跟B库进行个对应啊各位,这就是咱们所对应的什么呢?哎这个,哎明白一下啊,它什么是逻辑库啊,那还没完啊,哎咱们说了这块呢,给咱们的这个后面马思Q数据库穿个马甲,咱们可没说只是一对一对应的,比如后面我除了这个诶B数据库呢,哎我还可以什么呢?诶再包含比如说咱们的还有什么呢?C数据库,还有什么D数据库,还有E数据库,还有什么F数据库,哎这些都组成啊,这个虽然是多个数据库,但是我面对这个发来的请求,哎这个我通过什么都是穿着一个麦开的这个马甲,把这个多个数据库全都什么呢?哎,组成一个逻辑库。
09:14
这样什么呢?由咱们买K,哎到底什么呢?在这儿拦截一下SQ区分我到底应该把这个请求发给谁啊,发给哪个数据库啊,它进行个转发啊,完成咱们的什么呢?面对啊,咱们的这个应用面对的只是一个数据库,但它后面对应的是多个啊这个还再举个例子啊,就是咱们文字上写的啊,有点像什么呢?啊就是一堆小孩儿想要办大人,那怎么办呢?是不是?哎这块呢,咱们可以完全什么呢?摞起来叠个罗汉啊这个有负责什么的哎,上半身的啊,有负责什么肚子的,有负责什么的哎,这个哎,这个胳膊的有负责腿的啊这叫什么呢?叠个罗汉哎是不是穿个大的外套,是不是就可以扮成一个大人了,对吧?啊,很多的影视作品都有类似的情节出现啊各位这是不是就是哎,咱们所说的这个逻辑库对吧。
10:05
那这块呢,提到逻辑库,那不得不说啊,跟它对应的是不是还有物理库啊啊哥,这是啊,咱们逻辑库的一个概念,好,那再往后啊,就是什么呢?呃,逻辑表了啊,逻辑库里面存着的表啊,逻辑表啊,同样它也是啊,哎,也会什么呢?通过咱们的这个买CA中定义的逻辑表去映射咱们的买思扣真实数据库库中的物理表啊,这是啊,咱们所对应的逻辑表在逻辑上存在啊,这块呢,可以映射真实的数据表,可以一对一,也可以一对多,就跟各位刚刚给各位介绍这个逻辑库一样啊,我既可以什么呢,这一张表对应一张表啊,也可以什么呢?还是简单画一下吧。哎,既可以什么呢?我这一张表啊,咱们的逻辑表,比如说还叫还叫A表吧,哎,我这个A表既可以什么呢?只对应什么呢?咱们后面一张表啊,这个咱们比如说就是真实MYSQL表啊,它名字叫B表啊,这块呢,哎,我可以只针对这什么呢?只对应映射这一张表可以也可以什么呢?哎,咱们比如说我这个还是A表。
11:14
写了还是A表,哎,我这个对应的什么呢?逻辑表是A表,但我后面对应的什么呢?哎,我数据是分散在多个数据库里面的多张表,做了个数据分片,但有可能是A1 a2 a3,我可以什么呢?哎,在这儿对应多张表。诶,可以一对一,也可以一对多,各位,这就是咱们所所说的逻辑表,逻辑上存在,哎物理上,哎是不是一张表不一定啊各位,这是啊,咱们所对应的了解一下这个逻辑表这个概念,还是那句话,咱们只有把概念理清楚了啊,你真正去搭这个,呃,读写分离,分库分表,你才不至于什么呢,哎,这个看着看着,哎这个搭着搭着就晕了啊,到底是怎么回事,到底怎么去进行映射了,哎咱们什么呢?通过明确概念啊,咱们先了解它,那再往后就不用多说了啊,是不是这个逻辑库都出现了,逻辑表都出现了,他们背后的真实的存数据的那些英雄是不是也该出现了,对吧?哎,咱们的物理库,物理表。
12:16
啊,这个一句话带过,什么叫物理库,是不是MYSQL真实数据库对吧?哎,什么叫物理表,就是啊,咱们的MYSQL当中啊,它真实数据库中的真实数据表啊,这就是咱们所对应的什么呢?诶带着各位过一下概念,这四个可以说是一套啊这个逻辑库逻辑表啊,这个物理库物理表。啊,这块各位还是那句话,咱们记这些概念,了解学习这些概念的时候,不要单独去记啊,这块呢,包括啊这不光是哎针对这个咱们一个myca当中的概念啊,咱们学很多的一些技术上的一些工具啊,框架啊,一些知识点啊,这块呢,哎不要什么的,一个点一个点的去记啊,如果各位咱们什么呢?哎,这个每回只是哈这个什么呢?哎记住这些点,学习这些点你会什么呢?过一段时间就会全忘掉了啊,咱们需要做一件事儿就是啊,但凡学新的技术呢,你把它跟之前咱们学过的老技术连上线啊,这个点跟点连成线啊,这个线跟线我要做什么,是不是组成网啊。
13:25
只有这样啊,咱们才能记得更深刻一些啊,才不会那么容易忘。啊,这块呢,但凡有这个需求过来了,哎落在咱们这张网上你也知道,哎我到底会用上诶哪些技术,哪些技术能帮我解决这个问题啊所以各位这块呢,还是让咱们在学习的呃,过程中还是注意啊去做呃跟这个以往学的知识做一些连接,包括咱们学这个概念的时候,也要把什么呢,咱们看到了新的概念跟什么呢?诶之前咱们了解的概念来做一个连接啊各位这块一定要做到,好了继续再往下啊就是什么呢?拆分键啊这块咱们也说说拆分件其实很好理解,就是什么呢?哎,咱们我这个刚刚给各位介绍了这个分库分表啊,哎,我要分表的时候,我一张表啊这里面什么呢?诶数据众多啊,这块呢,哎,我是不是得进行一个分表操作,我是不是得拆分啊,你不能随意拆对吧,咱们什么呢,是不是得有一个规则。
14:24
哎,针对咱们这张表里里面的,我这表有很多字段,我针对这张表里的这么多字段,是不是选其中一个字段作为什么呢?哎,咱们的拆分的那个关键的那个键啊,选一个字段做这个事儿,那选的这一个字段就叫什么呢拆分键。说白了就是咱们分表的,哎这个写的那个分表规则所对应的那个字段就叫拆分键啊,这块看它描述,哎拆分啊,拆分键就是分片键啊,描述拆分逻辑啊,这个表的数据规则的字段还是那句话,就是你拆分这个表达啊,它的什么呢?拆分的那个,哎这个规则所对应的字段啊所这块还是要理解啊,咱们举还是举例吧,举例说明比较什么贴切啊,比如说哎,咱们还是举这个电商平台啊,电商平台啊,因为咱们啊可以说啊,就算你没做过电商平台,你总用总用过吧啊,你总用过这个电商买过商品吧啊这就不点名了,那几大巨头你肯定用过,就算你不想用啊,是不是这个逢年过节就算没有节日啊,是不是每个月他都会骚扰你对吧?啊,又是这个节日啊,又是那个节日啊,巧立名目那这块呢,哎,比如说咱们就是啊,这电商平台的你的什么的。
15:44
订单表,订单表我应该怎么拆?哎,这块呢,选择这个一个字段进行拆分啊,咱们多数情况下是拿用户ID进行拆分的,女老师拿时间行不行啊,你拿时间进行拆分,那我想问你,哎,到底哪个什么的,哪个数据库哪张表存双11或618那天的数据啊,是不是哪个数据库哪张表都扛不住,对吧?因为量太大了,所以这块呢按照它拆分不合理啊,一般情况下咱们的订单表呢,都会按照这个用户ID进行拆分。
16:16
那这块呢,用户ID就是拆分键啊,你按照哪个字段进行拆分,它就是拆分键啊,这很好理解这个概念啊好啊咱们的,诶这个概念啊,咱们什么呢,继续往下去介绍啊,各位什么的,哎,下阶段啊,咱们继续往下推进啊,该涉及咱们的哎做一些分库分表啊这些什么呢?哎,咱们具体的一些操作的概念了,哎下面我会带着各位再去了解它。
我来说两句