欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

MyCat教程五:实现分库分表,分表分库如何实现

来源: javaer 分享于  点击 29886 次 点评:34

MyCat教程五:实现分库分表,分表分库如何实现



 本文我们来介绍下MyCat的分库分表操作


分库分表


一、分片规则介绍


  在rule.xml中定义了各种myCat支持的分片规则。



注意:



二、分库配置


2.1 创建3个数据库


  在master中分别创建3个数据库demo1,demo2,demo3,因为主从的关系会同步到从库中。


create database demo1 default character set utf8;
create database demo2 default character set utf8;
create database demo3 default character set utf8;

在这里插入图片描述


2.2 schema.xml配置


  修改schema.xml文件中的信息,如下:


<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">
<table name="t_user" dataNode="dn1,dn2,dn3" rule="crc32slot" />
</schema>
<dataNode name="dn1" dataHost="localhost1" database="demo1" />
<dataNode name="dn2" dataHost="localhost1" database="demo2" />
<dataNode name="dn3" dataHost="localhost1" database="demo3" />
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="1"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">

<heartbeat>select user()</heartbeat>
<!-- can have multi write hosts -->
<writeHost host="hostM1" url="192.168.88.180:3306" user="root"
password="123456">

<!-- can have multi read hosts -->
<readHost host="hostS2" url="192.168.88.181:3306" user="root" password="123456" />
</writeHost>
</dataHost>
</mycat:schema>

注意:



2.3 修改rule.xml文件


  因为使用的是crc32slot算法,且有3个数据库,所以需要修改rule.xml中的配置


在这里插入图片描述

同时我们需要删除掉ruledata目录中的规则文件,不然修改的3不会起作用


在这里插入图片描述


重启mycat服务


在这里插入图片描述


查看分配规则


在这里插入图片描述


2.3 在mycat中创建t_user表

 先删除原来创建的t_user表,然后通过mycat创建t_user表示,通过mycat创建会多出来一个_slot字段。

CREATE TABLE t_user (
`id` INT,
`name` VARCHAR (30),
`age` INT,PRIMARY KEY (`id`)
) ENGINE = INNODB DEFAULT CHARSET = utf8;

在这里插入图片描述

三、分库测试

  在mycat客户端插入数据,然后去对应的物理库中查询具体的情况

insert into t_user(id,name,age)values(1,'HG-93',14)

注意:插入语句的语法要完整,不要偷懒省略字段,尤其是id自增长!!!

在这里插入图片描述

数据按照我们设置的规则分别存储到了各自数据的表结构中了。

然后我们来看下查询操作,通过mycat看能否将所有的数据都查询出来,

在这里插入图片描述



关注微信公众号【程序员的梦想】,专注于Java,SpringBoot,SpringCloud,微服务,Docker以及前后端分离等全栈技术。

在这里插入图片描述

相关文章

    暂无相关文章
相关栏目:

用户点评