水平拆分

 

分为水平分表和水平分库,我们这节课演示的是水平分表 场景: 在业务系统中,有一张表(日志表),业务系统每天都会产生大量的日志数据,单台服务器的数据存储及存储能力是有限的, 现需要对数据库表进行拆分(水平分表)

 

共要准备三台数据库服务器。分别在三台数据库服务器中创建数据库shuiping_fenbiao

1、第一台: 192.168.127.138

2、第二台: 192.168.127.149

3、第三台: 192.168.127.150

 

这节课我们配置第一台服务器的schema.xml文件时,不删除上节课SHOPPING数据库的任何数据,只是在上节课的基础上进行添加, 看一下等下在第一台服务器登录mycat的时候,能不能有权访问SHOPPING、SHUIPING_FENBIAO

 

注意SHOPPING ≠ shopping。原因:shopping是我们自定义的数据库名,并不是关键字,所以是严格区分大小写的 注意SHUIPING_FENBIAO ≠ shuiping_fenbiao。原因:shuiping_fenbiao是我们自定义的数据库名,并不是关键字,所以是严格区分大小写的

 

由于是水平分表,所以我们要在第一台服务器的schema.xml文件的<schema标签里面的table标签指定rule分片规则,我们在a_128_0 课的时候,指定的rule为"auto-sharding-long",代表的意思是根据主键范围进行分片,例如主键值(id值)在0~500万的时候,数据就会 在第一台服务器存储,在500~1000万的时候,数据就会在第二台服务器存储,...。如果我们需要数据均匀分散的存储在三台服务器上, 怎么办呢,只需要把rule分片规则设置为"mod-long"即可

 

启动mycat服务(注意mycat启动之后,会占用端口号8066,我们只要访问8066端口对应的服务即可) 切换到mycat的安装目录,执行如下指令:

 

 

具体过程

 

1、在第一台服务器的MyCat需要进行如下配置。详细见'模板'文件(我会写好发出来)

 

2、在第一台服务器的MyCat需要进行如下配置。详细见'模板'文件(我会写好发出来)

 

3、在第一台服务器重新启动mycat

 

4、在第一、二、三台服务器创建shuiping_fenbiao数据库

 

5、在第一台服务器上登录mycat

 

6、查看mycat里面有哪些数据库

 

7、查看SHUIPING_FENBIAO数据库有哪些表

 

8、手动把tb_log的表结构、表数据命令粘贴到终端。命令如下

 

9、此时去datagrip软件,看我们的第一、二、三台服务器的shuiping_fenbiao数据库 会发现第一台服务器的shuiping_fenbiao表有2条数据 会发现第二台服务器的shuiping_fenbiao表有2条数据 会发现第三台服务器的shuiping_fenbiao表有2条数据 原因: 我们在第1步配置schema.xml文件时的rule分片规则设置为了"mod-long",表示的就是: 数据均匀分散的存储在三台服务器上