00:00
明确了咱们订单表orders它的什么呢?分片原则之后,咱们真正动手去配置一下咱们的OS数据分片,好,首先咱们要修改chema.XM这个配置文件啊,怎么去修改,我设置一下咱们的OS啊,这个表啊,来个。Table标签表明就是咱们的OS设定它的数据节点为DN1DN2,什么意思,分成两片啊,它还有一个重要的参数什么呢?哎,Rule什么咱们分片规则啊,我起名叫model入啊,这是我定义的分片规则,咱们之后会什么呢?去设置它的分片规则,好,咱们先修改STEM这个配置文件。好,咱们去什么呢?呃,进到咱们的配置文件目录VMSTEM,好,修改一下咱们进去后能看到什么?之前咱们做呃垂直拆分分库时候的配置,咱们设置了customer这张表,哎,是在DN2这个节点上,好,咱们下一行录入,敲下O,然后在下一行,注意啊,调整一下格式,添加上咱们分片规则的配置OS相关的配置,它的数据节点是DN1和DN2分成两片啊,咱们把配置项给加上,好添加上以后咱们scma的这个配置文件啊,修改这一行就可以了,咱们新增这一行之后呢,下面做什么呢?保存退出ec冒号WQ,好,下面要修改咱们的呃,原则的配置文件谁啊?咱们ru.xl啊,咱们说了要修改三个配置文件啊STEM,咱们最常用的还有什么server,咱们。
01:45
那用户跟服务相关信息,还有就是咱们的热终于到他了,他是干什么用的,主要就是负责分片,还有分片规则啊,进行相应的设置好啊,咱们进行修改一下,若这个配置文件VM修改一下配置文件,好,咱们进到这个配置配置文件里面啊,咱们看一下上面可以看到都是什么一堆的分片,呃规则咱们啊直接什么呢?复制原影的这个咱们改一改,复制一下规则,然后呢,诶,咱们在上面下一行录入,哎,添加新的规则啊,还是要调整一下格式啊,刚刚复制的内容咱们粘贴过来啊,修改下名字,咱们名字叫什么来着,是不是model rule啊啊这块呢,直接修改一下名字。
02:36
把这个哎若一点一下,咱们就叫model入好啊下面要做什么,咱们要诶写明你针对这个分片规则哎,它的一个适应的字段啊,那它的字段是谁?各位咱们是不是已经确定了,咱们要用customer_ID啊,也就是咱们的客户ID啊,根据客户去分你的订单信息,好同样把这个字段啊也得改过来,切记切记啊,这个分片规则所对应的字段千万不能写错,好诶咱们站过来customer_ID那这块呢,下面就是什么呢?你真正这个分片的时候应用的算法是什么啊,这个算法各位啊,咱们说了是要什么呢?对customer ID进行取模啊这块哎分到什么呢?看分到哪台节点,哪个什么呢?诶机器上那这块呢,各位啊,这块呢,不需要咱们自己去写啊,只需要什么呢,用线。
03:37
盆的它的算法叫什么model long,咱们直接啊这块呢,设置下model这个算法,好,这个算法在哪?各位就在下面往下啊再找啊,它叫什么呢?哎,咱们分片的方式啊函数啊,也是咱们所说的分片的算法,咱们看一下分片函数啊,Model long啊,咱们往下找,诶各位是不是在这呢?哎,Model long咱们的什么的分片的函数啊,再往后各位能看到非常熟悉的一个词,各位什么class诶这什么东西啊。
04:12
啊,各位同学啊,这块,哎,反应很对啊,咱们学了这么长时间Java了,提到class第一反应什么累啊,对吧?这是咱们的类啊,再往后看能看到什么?哎,我这块非常熟悉的这个目录风格,这什么Java的类的目目录,哎,咱们的路径,但凡你想要研究一下它的算法,可以去看它的源码啊,在这个路径下可以找到它对应的class文件,有同学说,哎,老师class都已经编译过了,但我怎么看呀?哎,很简单,反编译一下是不是咱们能看到它里面怎么实现的?哎,这会儿还没完啊,咱们还要在下面改一个参数,也就是你所对应的节点数,必须要明确,咱们这是不是没这么多节点啊,总共就什么?只有两个节点,没有三个啊,咱们设置下设置成两个节点啊好,咱们什么呢?保存退出ec冒号WQ好啊,这块我配置文件两个都修改好了,我是不是终于可以把my cat诶再重启。
05:13
一下了啊,这块先把它停掉,哎,咱们再什么呢?把它启动起来稍等,哎,咱们是不是忘了一件事啊,啊,别忘了你是要把数据是不是分到两片,咱们的DN1DN2是不是都有你的数据啊,那现在问题来了,是不是只有DN1上有咱们这张表orders,你DN2上面是不是根本没有啊,那咱们还有一个步骤必须要做,是不是得在DN2上面创建你的表,咱们的orders这个订单表,好,咱们建表语句再去拿到,哎,再去找一下咱们的建建表语句啊,Orders的在这。把今呃咱们订单表的建表语句拷贝一下,要在哪执行,咱们是不是要哎数据分片咱们要放到什么呢?诶DN2上面啊,咱们可以看到,哎,在DN2上面我要去创建咱们的OS这张表好D2在哪?诶这也就是咱们127这台机器,好在咱们的数据库里面运行一下建表语句,好建表成功了,这样什么呢?我DN1DN2下面都有咱们的orders了,这个时候你再把my cat提起来,好启动。
06:25
看到成功字样以后,咱们就可以做什么呢?诶这块分表的一个验证了,好咱们还是访问买cat,但是啊,你经过一个什么呢?哎,重启操作这块我得重新再切下库,好切下库啊,咱们清下屏啊,下面做什么,我是不是要插入数据了,好咱们看一下插入的数据也给各位准备好了,咱们可以看到,诶一共六条数据,往往orders里面插入相关的数据,好咱们先试一条啊,先插入第一条,哎,往里面插入数据。好,这块有一个事儿,各位咱们插入数据的时候,是不是可以省略一下我这个哎O后面这些字段啊,哎,咱们把这些字段省略掉啊,这块看看我直接写咱们以ER into咱们的orders啊下面的values啊,我放什么的一啊这块指定相应的数据一幺零幺一百啊1011010100100,好咱们试一把,诶运行下看看,诶报错了,为什么报错。
07:33
哎,各位还是那句话,再回来看咱们是不是针对的哪个字段,是不是customer ID这个字段设定的这么一个函数,来设定你的分片规则啊,再再回来看你这个,诶custom麦这个字段是不是必须得写明啊,你得告诉my cat我1234啊这个整个这四个诶数值里面到底谁是卡ID,对所以啊,这块提醒各位,但凡咱们用my cat做分库操作,做分表操作也好,哎,但凡我什么的往里插入数据的时候,你字段必须写明。
08:09
啊,各位这块必须要注意好,咱们把这个呃。对应的六条数据啊,咱们全插入一下。咱们来看到里面执行一下插入的隐私的语句,各位能看到这块呢,执行情况啊,插入的数据情况,哎,咱们查询一下看看select星啊,From咱们的什么orders这张表,咱们看一下执行情况怎么样。各位能看到哎,是不是数据全都插进去了,总共啊六条啊,123456诶。他为什么没有按照顺序排出来。啊,这个原因在哪?啊,各位能猜到吗?啊,咱们看到六条数据都插进去了,而且我查询都能查到,诶为什么没按照123456去排。
09:03
啊,咱们去,哎,分别到咱们的两个数据节点,第一第二下面去看一看啊,分别查询一下咱们的什么的数据啊,同样的思口,咱们再运行一下看看。好,首先D1上咱们运看看能看到数据是什么,是不是就是126啊再过来看啊,咱们再看DN2上面再去运行一下数据,哎,可以看到是不是345啊各位再回来看是不是126345,各位能看到它的规则在哪了吧?啊这块呃,他做的是什么操作,咱们看一下这个图,首先啊,你查询的语句发给咱们的my cat他做了什么,是不是分片分析啊啊他看到了我这个诶OS诶在哪,D1上面有数据,D2上面是不是也有数据啊,他做了什么事?诶进行一下什么的,诶把我的S扣分别转发给DN1DN2DN1执行箱的哎语句,DN2什么也执行箱的语句是不是分别发回给你买cat。
10:05
诶分别发回来在我买看这里面做了一个什么,各位结果合并,然后呢,合并成一个再返回给你客户端啊这就是啊咱们对应的分片的情况各位能看到,但他把结果进行一下UNI,所以这块能看到是什么,是不是345126没按照顺序啊有同学说老师这个不行啊,我需要什么呢?按照顺序来执行,那这块呢?诶我要什么呢?123456这种顺序,那怎么办?很简单,是不在后面加个order,诶咱们的order by是不是就可以了啊这玩意哎需要order by一下就可以,什么呢?Order ID就可以看到123456按照顺序排好的情况,所以各位这块一定要明白啊咱们的呃怎么进行数据分片,以及分片完成之后查询的结果怎么进行的结果合并,这个原理也必须要清楚好,以上就是咱们对应的什么呢?OS这个订单表做的一。
11:05
个分片的一个,诶操作,但还没完啊,这块呢,还有什么事儿啊,咱们再看后面,哎买cat分片的桌印啊,我关联查询怎么办?咱们订单表跟订单详情表有什么呢?诶强关联关系,那这块呢,订单表跟订单详情表怎么进行关联查询啊,这也是咱们必须要研究清楚的,好咱们的OS诶进行数据分片就先到这儿,各位可以看到成功啊,分成两片啊,当然如果有多台数据库,多台机器,咱们也可以做什么呢?分成多片啊通过什么呢?分表操作缓解数据库的压力,好啊分表操作咱们啊就先到这儿,咱们下面看看什么呢?诶怎么进行分片的浊音。
我来说两句