七、mycat-ER分片
系列导航
一、实验环境
ER分片
实验环境 服务内容 dataNode
192.168.0.1 mycat mysql dn162
192.168.0.2 mysql dn163
192.168.0.3 mysql dn164
二、实验内容
1、192.168.0.2 、192.168.0.3上分别在 ship_db_01和ship_db_02数据库上创建shipping_detail表
注:建表脚本见:数据库环境及用户名密码见mycat实验数据 2、配置 schema.xml
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<schema name="demo_db" checkSQLschema="false" sqlMaxLimit="100">
<table name="order_master" primaryKey="order_id" dataNode="dn163" />
<table name="customer_inf" primaryKey="customer_inf_id" dataNode="dn164" />
<!--这是ER分片表begin-->
<table name="shipping_info" primaryKey="ship_id" dataNode="dn163_sp,dn164_sp" rule="mod-long" >
<childTable name="shipping_detail" primaryKey="shipping_detail_id" joinKey="ship_id" parentKey="ship_id" />
</table>
<!--这是ER分片表end-->
<table name="goobal_master" primaryKey="goobal_id" dataNode="dn163_sp,dn164_sp" rule="rule1" autoIncrement="true"/>
</schema> <dataNode name="dn163" dataHost="mysql163" database="order_db" />
<dataNode name="dn164" dataHost="mysql164" database="customer_db" /> <dataNode name="dn163_sp" dataHost="mysql163" database="ship_db_01" />
<dataNode name="dn164_sp" dataHost="mysql164" database="ship_db_02" /> <dataNode name="dn162" dataHost="mysql162" database="mycat" /> <dataHost name="mysql162" maxCon="1000" minCon="10" balance="3" writeType="0" dbType="mysql" dbDriver="native" switchType="1" >
<heartbeat>select user()</heartbeat>
<writeHost host="192.168.0.1" url="192.168.0.1:3306" user="root" password="123456">
</writeHost>
</dataHost> <dataHost name="mysql163" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native" switchType="1" >
<heartbeat>select user()</heartbeat>
<writeHost host="192.168.0.2" url="192.168.0.2:3306" user="im_mycat" password="123456">
</writeHost>
</dataHost> <dataHost name="mysql164" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native" switchType="1" >
<heartbeat>select user()</heartbeat>
<!-- can have multi write hosts -->
<writeHost host="192.168.0.3" url="192.168.0.3:3306" user="im_mycat" password="123456">
</writeHost>
</dataHost> </mycat:schema> 3、192.168.0.1上用mycat用户插入数据
[root@zhu logs]# mysql -h 192.168.0.1 -P 8066 -umycat_user -p123456
mysql> show databases;
+----------+
| DATABASE |
+----------+
| demo_db |
+----------+
1 row in set (0.01 sec) mysql> use demo_db mysql> select * from shipping_info;
+---------+------------+
| ship_id | ship_name |
+---------+------------+
| 0 | 第1公司 |
| 2 | 第2公司 |
| 4 | 第4公司 |
| 6 | 第6公司 |
| 8 | 第8公司 |
| 1 | 第1公司 |
| 3 | 第3公司 |
| 5 | 第5公司 |
| 7 | 第7公司 |
| 9 | 第9公司 |
+---------+------------+ 插入准备的实验数据; insert into shipping_detail(shipping_detail_id,ship_id,address )values('10','0', '乌鲁木齐');
insert into shipping_detail(shipping_detail_id,ship_id,address )values('11','1', '昌吉');
insert into shipping_detail(shipping_detail_id,ship_id,address )values('12','2', '石河子');
insert into shipping_detail(shipping_detail_id,ship_id,address )values('13','3', '伊犁');
insert into shipping_detail(shipping_detail_id,ship_id,address )values('14','4', '巴州');
insert into shipping_detail(shipping_detail_id,ship_id,address )values('15','5', '阿克苏');
insert into shipping_detail(shipping_detail_id,ship_id,address )values('16','6', '奎屯');
insert into shipping_detail(shipping_detail_id,ship_id,address )values('17','7', '图木舒克');
insert into shipping_detail(shipping_detail_id,ship_id,address )values('18','8', '五家渠');
insert into shipping_detail(shipping_detail_id,ship_id,address )values('19','9', '阿拉尔'); commit; mysql> select * from shipping_detail;
+--------------------+---------+--------------+
| shipping_detail_id | ship_id | address |
+--------------------+---------+--------------+
| 10 | 0 | 乌鲁木齐 |
| 12 | 2 | 石河子 |
| 11 | 1 | 昌吉 |
| 13 | 3 | 伊犁 |
| 15 | 5 | 阿克苏 |
| 14 | 4 | 巴州 |
| 16 | 6 | 奎屯 |
| 18 | 8 | 五家渠 |
| 17 | 7 | 图木舒克 |
| 19 | 9 | 阿拉尔 |
+--------------------+---------+--------------+
10 rows in set (0.08 sec) 4、192.168.0.2、192.168.0.3上验证
192.168.0.2:
mysql> select * from shipping_info;
+---------+------------+
| ship_id | ship_name |
+---------+------------+
| 0 | 第1公司 |
| 2 | 第2公司 |
| 4 | 第4公司 |
| 6 | 第6公司 |
| 8 | 第8公司 |
+---------+------------+
5 rows in set (0.00 sec) mysql> select * from shipping_detail;
+--------------------+---------+--------------+
| shipping_detail_id | ship_id | address |
+--------------------+---------+--------------+
| 10 | 0 | 乌鲁木齐 |
| 12 | 2 | 石河子 |
| 14 | 4 | 巴州 |
| 16 | 6 | 奎屯 |
| 18 | 8 | 五家渠 |
+--------------------+---------+--------------+
192.168.0.3:
mysql> select * from shipping_info;
+---------+------------+
| ship_id | ship_name |
+---------+------------+
| 1 | 第1公司 |
| 3 | 第3公司 |
| 5 | 第5公司 |
| 7 | 第7公司 |
| 9 | 第9公司 |
+---------+------------+
5 rows in set (0.00 sec) mysql> select * from shipping_detail;
+--------------------+---------+--------------+
| shipping_detail_id | ship_id | address |
+--------------------+---------+--------------+
| 11 | 1 | 昌吉 |
| 13 | 3 | 伊犁 |
| 15 | 5 | 阿克苏 |
| 17 | 7 | 图木舒克 |
| 19 | 9 | 阿拉尔 |
+--------------------+---------+--------------+

七、mycat-ER分片的更多相关文章
- MyCAT ER分片的验证
在这里,构造了两张表,熟悉Oracle的童鞋都知道,dept(部门表)和emp(员工表),其中dept中的deptno是emp表中dept_no的外键. 两表的建表语句如下: create table ...
- mycat ER分片
有一类业务,例如订单(ORDER)跟订单明细表(ORDER_DETAIL),明细表会依赖于订单,就是该会存在表的主从关系,这类似业务的切分可以抽象出合适的切分规则,比如根据用户ID切分,其它相关的表都 ...
- mycat ER 分片表
<table name="order" dataNode="dn$1-32" rule="mod-long"> <chil ...
- MyCat 学习笔记 第十篇.数据分片 之 ER分片
1 应用场景 这篇来说下mycat中自带的er关系分片,所谓er关系分片即可以理解为有关联关系表之间数据分片.类似于订单主表与订单详情表间的分片存储规则. 本文所说的er分片分为两种: a. 依据主键 ...
- mycat读写分离+垂直切分+水平切分+er分片+全局表 测试
原文http://blog.163.com/bigoceanwu@126/blog/static/172718064201683031639683/ 读写分离:利用最基础的mysql主从复制,事务性的 ...
- MyCat 枚举分片设计思考,查询命中条件
Mycat多租户实现的两种方式 MyCat,各种分片规则,仅保证插入的时候分片.表关联,join,查询怎么命中分片条件,还是需要设计. 今天稍微测了一下. ER 分片,此方式,插入的时候能分片,但是查 ...
- Mycat跨分片Join
1 前言 Mycat目前版本支持跨分片的join,主要实现的方式有四种. 全局表 ER分片 HBT(参考MyCAT人工智能解决跨分片SQL.docx) ShareJoin ShareJoin在开发版中 ...
- Mysql系列六:(Mycat分片路由原理、Mycat常用分片规则及对应源码介绍)
一.Mycat分片路由原理 我们先来看下面的一个SQL在Mycat里面是如何执行的: , ); 有3个分片dn1,dn2,dn3, id=5000001这条数据在dn2上,id=10000001这条数 ...
- JAVAEE——宜立方商城13:Mycat数据库分片、主从复制、读写分离、100%Linux中成功安装Mysql的方法
1 海量数据的存储问题 如今随着互联网的发展,数据的量级也是撑指数的增长,从GB到TB到PB.对数据的各种操作也是愈加的困难,传统的关系性数据库已经无法满足快速查询与插入数据的需求.这个时候NoSQL ...
- JAVAEE——宜立方商城13:订单系统实现、订单生成、Mycat数据库分片
1. 学习计划 1.订单系统实现 2.订单生成 3.Mycat数据库分片 2. 订单系统 2.1. 功能分析 1.在购物车页面点击“去结算”按钮,跳转到订单确认页面 a) 必须要求用户登录 b) 使用 ...
随机推荐
- c语言实现this指针效果
概要 由于目前在做一个比较复杂的嵌入式项目,想要借此提升一下代码的结构设计能力,所以想要以面向对象的思想来完成这个项目,即把每个板载外设资源视为一个对象,采用msp+bsp的模式,对每个bsp外设实现 ...
- 【UniApp】-uni-app-全局数据和局部数据
前言 好,经过上个章节的介绍完毕之后,了解了一下 uni-app-全局样式和局部样式 那么了解完了全局样式和局部样式之后,这篇文章我再来给大家介绍一下 UniApp 中全局数据和局部数据 搭建演示环境 ...
- Linux下^m符号删除
Linux下^m符号删除 从Windows上复制的代码到Linux尾会有M字符,通过下命令可以删除. :%s/\r//
- hdu4365 Palindrome graph
Palindrome graph Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- wife-wife【原型链污染】
wife-wife[原型链污染][难度:4] 题目界面 登录界面 注册界面 思路:在注册界面,利用原型链污染漏洞,获得管理员权限. 步骤 在注册界面输入用户名-密码-邀请码,勾选admin选项,抓包 ...
- MySQL运维15-一主一从读写分离
一.读写分离介绍 读写分离,是把数据库的读和写分开操作,以应对不同的数据库服务器.主数据库提供写操作,从数据库提供读操作,这样能有效的减轻单台数据库的压力. 二.一主一从原理 MySQL的主从复制是基 ...
- NLP复习之朴素贝叶斯
朴素贝叶斯分类器和加一平滑计算每个单词的似然值 贝叶斯规则:c表示类别,d表示数据 \[P(c|d) = \frac{P(d|c)P(c)}{P(d)} \] 例题1 假设句子"I alwa ...
- Alpha-Beta剪枝的原理的深入理解(无图预警)
转载请注明 原文链接 :https://www.cnblogs.com/Multya/p/17929261.html 考虑一个树: 一棵树上只有叶子节点有值,有确定的根节点的位置 根据层数来划分叶子节 ...
- 一文带你深入理解K8s-Pod的意义和原理
本文分享自华为云社区<深入理解K8s-Pod的意义和原理>,作者:breakDawn. 在Kubernetes概念中,有以下五种概念: 容器container:镜像管理的最小单位 生产任务 ...
- Linux的发行版及其描述
Linux的十种发行版及其描述 linux其中十种发行版本为Debian.Gentoo.Ubuntu.Damn Vulnerable Linux.红帽企业级Linux. CentOS.Fedora.K ...