00:00
咱们实现了水平拆分分表这个操作啊,首先第一个例子,咱们的订单表啊,里面数据非常多了,诶已经快到瓶颈了,咱们要进行一个拆分,咱们是根据它其中一个字段custom ID进行拆分的啊这块呢,拿咱们customer ID对咱们诶两个数据节点啊,两个数据节点进行取模啊可以什么呢?把数据平均分配到这两个数据节点,D1DN2上面啊成功做到了什么呢?数据分片的操作啊,水平分表之后呢,诶,咱们跟咱们订单表关联非常紧密的,还有什么订单详情表,咱们之前就说过啊,我对应的两个数据库里面存的两张表是没有办法关联桌印查询的,那这块咱们需要怎么做啊?呃,是在两台机呃,两台主机上面啊,D1D2上面是没办法关联查询的,那这块咱们怎么办啊,既然你订单表拆分了,我订单详情表也必须要进行拆分啊,咱们要什么呢?诶,既然关联那么紧密,咱们。
01:00
用什么ER表的方式把咱们的订单详情表作为我订单表的一个什么子表,哎,去进行拆分啊,咱们ER表进行水平分表好之后呢,咱们又涉及到什么咱们的字典表啊,字典表是什么情况,D1D22个数据库都需要,那怎么办?我把它设置成哎这块全局表global啊这块呢,DN1DN2上都有,通过数据冗余达到分片的效果啊以上啊就是咱们之前做的水平拆分分表操作啊,是不是各位同学说,哎老师分表终于完了吧,各位还没有啊这块呢,咱们分表的相关操作比咱们的分库要复杂的多,因为诶你拆分这些表用什么规则啊,这块呢,诶根据实际场景,我应该怎么去设置各位这些啊,很复杂啊这块呢,哎,咱们给可以跟各位说啊,这块呢,哎,咱们先去看看常用的分片规则。
02:00
首先第一个取模操作,咱们已经在什么订单表已经尝试过了啊,咱们可以通过对呃一个字段对咱们数据节点进行取模啊,这样的好处就是什么呢?可以平均分配到哎几个数据节点上,除了它还有第二种也是咱们比较常用的分片枚举啊,这是什么意思啊,这个也很好理解,枚举咱们是不是学过枚举类啊啊我可以什么呢?哎,这块定义很多个什么属性,还有它对应的什么呢?哎,一个一个的字段啊,这块呢,哎咱们再看啊分片枚举什么意思,咱们可以在配置文件里面去枚举ID啊,自己配置分片啊这块呢?哎,什么样的场景啊,什么样的哎数据我存在哪个数据分片啊各位这块举个例子,最常用的什么呢?比如说咱们根据省份或者区县来保存相应数据,比如说咱们诶北京省啊相关的数据我存在D上,诶这块各位有没有觉得跟咱们之前呢,划的这个什么呢。
03:00
名片的这个图非常像,咱们再回来看看啊各位,就是它咱们可以看到,哎它的特点就是什么?根据啊我这订单啊,它所在的什么呢?哎,所在的省市进行划分可以看到,哎,咱们的么呢?哎,上海我存在DN2,然后什么呢?浙江我存在DN1啊,北京我存在DN2,根据它去划分,那这块呢?哎,咱们这些省市信息是在哪儿,在咱们配置文件里面进行配置的,咱们再回来看看咱们的诶枚举分片可以看到啊,咱们在什么呢?配置文件里面进行配置,配置好了,诶哪个什么呢?省市我放在哪个分片啊,哪个省市我放在哪台机器上啊,这就是咱们的分片枚举啊各位这块呢?呃,以下就是咱们对应的具体的操作啊,咱们要具体实现上,但有一个事儿咱们得先说一说啊,那这块呢,真正工作当中,咱们做分表也好,分库也好,怎么实现,这是一个步骤。首先各位咱们得。
04:00
偏在什么呢?哎,在分库分表之前,你得先制定出来计划啊,怎么进行分片怎么进行哎这块对应的数据分片怎么进行咱们的数据库的分表啊这块呢,分表还有分库操作都得什么呢?制定好计划,12345678,而且咱们要知道不同的表它的什么呢?分片原则是不一样的,根据实际业务场景把这些都制定好之后,哎,咱们准备啊这个哎,比如说两台或者多台咱们的诶主机,这个主机里面装上咱们的MYS库数据库,而且这个数据库必须要是空白的,什么东西都没有,咱们要什么呢?诶搭好咱们的my cat,这个my cat,哎咱们呢,把配置信息配置好,咱们的分库分表的计划设定好,然后呢,把my cat提起来,咱们什么呢?把咱们的建表语句啊,建表语句发过来,发给咱们my cat有买,根据它的配置。
05:00
的这个相关的信息啊发给什么呢?对应的主机,DN1DN2,或者是更多的主机啊,12345678,那这块呢,哎,我直接什么呢,分过去啊,咱们创建,诶在不同的数据库里面创建不同的表,这就是咱们啊实现的分库,还有就是啊咱们诶创建好表了以后,我得什么呢?诶再往里插入数据啊这块呢,咱们把那些插入数据的语句,Insert语句也得通过my cat去执行,它同样是把这些语句啊发到不同的数据库里面,诶去创建不同的数据,各位这就是咱们的啊真正业务的实现,咱们公司里面实现项目的时候都是需要这么做的,先制定计划,诶搭起买菜的环境,然后再去创建库,再插入数据啊这块各位一定要什么呢?诶知道咱们分库分表都是什么呢?先制定计划再进行操作的。
06:00
各位这块必须要清楚,好,咱们看一下咱们要做的什么,哎,这块要分一张表谁咱们看一下订单归属区域信息表,什么意思,我这个订单是归属到哪个区域的,这块咱们有区域编号,各位可以看一下啊,诶里面数据110是谁?北京的数据,120是天津的数据,我就根据它进行一个划分,那这块比如说110我放在DN1上面啊,120我放在D2 D2上面,放在两个数据库,两台机器里面,这样呢?哎,完成咱们根据什么呢?枚举信息的数据分片,那这怎么去做啊,同样是咱们要动手去改配置文件了,首先各位先做第一件事啊,修改STEM这个配置文件,同样啊,咱们进到咱们的什么呢?CF下面咱的VM修改一下s scma,好修改s scma在之前啊,咱们什么呢?设置全局表的下面咱们再。
07:00
再新增一条,诶光标咱们下一行录入这块呢,嗯,在这块呢,输入相关的信息,这块很简单啊,这个设定表名咱们在什么呢?诶订单区域表啊,订单区域信息表,然后呢,诶这块我对应的数据节点同样是DN1DN2都有啊设定规则什么,哎,Ing by。啊,这块根据我具体的配置文件啊,相应的规则各位可以看到,哎,我设定相应的算法规则去什么呢。进行数据分片,咱们把这个配置项加上啊,咱们SC添加上配置项。好,新增好配置项之后呢,哎,咱们保存对出诶ec冒号WQ好之后呢,哎,既然是要什么呢,修改配置项了,咱们要什么呢?设定规则咱们的哎入哎配置文件咱们进到里面啊,这块还是回到上面啊,咱们先去新增一下咱们的什么呢?哎,我去修改数据的规则,好这块呢,我进行分片的规则,我要制定一下那限行录入O在这里面插入相关的哎配置信息咱们看一下啊这个哎shing by interfei啊咱们可以看一下我的规则什么,根据咱们的,哎我这个归属的什么呢?哎区域编号,然后呢,哎根据咱们的算法函数什么呢?哈希int啊去进行一个什么呢,数据分辨,好咱们把配置信息也给加上。
08:36
好,添加好配置信息之后,下面做什么?咱们要去看一下哈希int啊这个配置项,好往下咱们进到咱们的什么的function下面找到哈希int啊在这儿呢,然后咱们可以看到啊,咱们看一下哈希int,首先啊指定一下它的哎,对应的class是谁?还有指定一下什么它所依赖的配置文件,好,这个配置文件咱们待会会配好,再往后咱们看下面的字段tap,哎,这个type是什么?咱们看一下TYPE0为int型,非零,为什么呢?哎,咱们字符串型,但是有一个事儿,咱们看一下咱们要哎针对的字段是谁?各位是不是域号啊,咱们看一下区域编号是什么,What char它不是int型,所以各位这块咱们配置项一定要记住是一啊,再往后咱们再看下面啊咱们的哎,Default,哎,Note啊什么意思,哎,咱们默认的节点,各位默认节点这块呢,哎,如果小于零。
09:37
表示什么,我不设置默认节点啊,我可以不设啊,大于等于零表示什么呢?我设置默认节点啊,是第一个或者第二个啊,从零开始的,然后再往后看啊,如果设置了默认节点啊,如果碰到了什么呢?哎,不识别的枚举值啊,让他走什么走我设置好的默认节点啊,如果不设置啊这块默认节点的话,诶这块呢?诶如果不识别了啊,碰到不识别的数值了,就直接报错了,所以各位这块保险起见啊,咱们还是需要去设置一下的,好把这两项咱们加上。
10:14
好给咱们的配置项啊,加上咱们还是啊这块呢,这块插入咱们的新的配置项啊指定项我的类型啊不是int型,咱们是什么呢?哎,字符串类型,然后呢,哎,还有我设定一下默认的节点,而是DN1第一个节点好以上就是咱们对应的什么弱诶相应的什么规则的配置,好咱们保存最出EA冒号WQ好咱们设定好这些之后还没完,别忘了你要有一个什么呢,是不是一个哎对应的配置信息的哈,咱们对应的哈希int啊这块对应的诶配置信息必须要改,改好咱们VM去修改一下咱们的配置信息这块啊在这。
11:03
好,咱们进去看一眼,各位可以看是空的啊,咱们这块设置成什么呢?哎,刚刚是不是说了,根据咱们枚举的哎数据进行划分,110是北京的,我要放在DN1 120是天津的,我要放在DN2,各位就是它啊设置什么110等于零,也就是咱们第一个数据节点DN1,还有就是120等于一,也就是咱们第二个数据节点DN2,这块呢,哎,咱们把这两个枚举项咱们配置上好,这块呢,这就是啊,咱们写呃,通过设置枚举项,然后去什么呢?哎,给它,哎。去指定一下咱们的什么呢?哎,相应的数值光标前录入,然后呢,哎,插入相应的数值啊咱们的什么呢?这块多余的空格啊,该删的删掉,还有对哎这块呢啊保证字符集是对的,好,这块多余的行,咱们也不需要给也给删掉好这就是让咱们的110是第一个节点,120是第二个节点,好保存退出ec冒号WQ好保存退出之后啊,咱们的配置文件啊做好了之后,咱们要什么重启买cat,咱们把买K再提起来。
12:17
然后启动买之后呢,咱们要在买CA下面去创建表,去插入数据,刚刚啊我一直在配配置文件,我没有去创建表啊,这个表咱们要通过my cat去创建,咱们看一下它创建是什么样的效果,然后访问my cat还是哎通过MYSQL,哎,我指定一下用户啊,咱们的my cat,哎指定一下密码好这块还有咱们的地址192.168。点140.128,然后还有什么呢?哎,别忘了咱们的端口号什么的,8066好,咱们进去之后还得再切换一下啊,这块呢,哎,切换一下什么呢?哎,切一下咱们的逻辑库test DB好之后呢,哎,咱们要去创建咱们的表啊,咱们的订单,呃,归属区域信息,咱们把它加上。
13:20
好,各位可以看,已经创建成功了,咱们再去验证一下这块我之前配的是什么呢?我这个,呃,订单归属区信息是什么,是不是DN1DN2都有啊,那但凡我去啊进行创创建这个表的操作,它为什么呢?往DN1DN2都会发送创建表的语句,也就是咱们的128和127的数据库上都有相应的这张表,咱们看一下还是买思扣,哎,这块呢,我登录一下。好,这块还是啊,这块得切一下库,咱们的OS。
14:02
好之后呢,哎,咱们看一看。咱们看一下对应的表。各位可以看到在这里面啊,咱们的什么的订单,呃,归属区域信息表有了,同样这边一样也一样验证一下,同样啊用什么的root用户登进去看一眼这块还是切下库啊,还是咱们的什么呢?Orders好这块呢,哎,再去什么呢,展现一下咱们的table。各位同样orders咱们的什么的订单信,订单归属信息,呃,归属参区域信息表,同样创建完成好这块两张表都有了,那之后做什么事,各位插入数据咱们看看效果,插入两条数据,一条北京的,一条天津的,咱们插入一下试试啊,同样是在咱们的maca下去执行。
15:08
插入数据。好,都成功了,咱们查询一下看看啊,Select星哎,咱们from一下咱们的,哎对应的表咱们看一下,哎能否查到这两条数据。对,可以可以看到天津北京的数据都有那这块,哎,同样的S,哎我在什么呢?咱们的128和127上,咱们去看一看,他们的数据是什么,128啊这块呢,我清下屏,咱们看一下诶在咱们的D1上面存的谁北京,因为咱们北京配的枚举的哎。配置项就是什么呢?DN一再回来看这块呢,我在什么呢?诶DN2上面咱们127这台机器上再去看一下,哎,配的天津咱们120就是配的天津DN2这个节点啊,这就是啊咱们的,呃,根据咱们的枚举配置进行一个什么呢?分片,分片枚举啊,这个规则各位也需要了解,这也是咱们常用的,哎,分片规则之一。
我来说两句