系列导航

一、Mycat实战---为什么要用mycat

二、Mycat安装

三、mycat实验数据

四、mycat垂直分库

五、mycat水平分库

六、mycat全局自增

七、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分片的更多相关文章

  1. MyCAT ER分片的验证

    在这里,构造了两张表,熟悉Oracle的童鞋都知道,dept(部门表)和emp(员工表),其中dept中的deptno是emp表中dept_no的外键. 两表的建表语句如下: create table ...

  2. mycat ER分片

    有一类业务,例如订单(ORDER)跟订单明细表(ORDER_DETAIL),明细表会依赖于订单,就是该会存在表的主从关系,这类似业务的切分可以抽象出合适的切分规则,比如根据用户ID切分,其它相关的表都 ...

  3. mycat ER 分片表

    <table name="order" dataNode="dn$1-32" rule="mod-long"> <chil ...

  4. MyCat 学习笔记 第十篇.数据分片 之 ER分片

    1 应用场景 这篇来说下mycat中自带的er关系分片,所谓er关系分片即可以理解为有关联关系表之间数据分片.类似于订单主表与订单详情表间的分片存储规则. 本文所说的er分片分为两种: a. 依据主键 ...

  5. mycat读写分离+垂直切分+水平切分+er分片+全局表 测试

    原文http://blog.163.com/bigoceanwu@126/blog/static/172718064201683031639683/ 读写分离:利用最基础的mysql主从复制,事务性的 ...

  6. MyCat 枚举分片设计思考,查询命中条件

    Mycat多租户实现的两种方式 MyCat,各种分片规则,仅保证插入的时候分片.表关联,join,查询怎么命中分片条件,还是需要设计. 今天稍微测了一下. ER 分片,此方式,插入的时候能分片,但是查 ...

  7. Mycat跨分片Join

    1 前言 Mycat目前版本支持跨分片的join,主要实现的方式有四种. 全局表 ER分片 HBT(参考MyCAT人工智能解决跨分片SQL.docx) ShareJoin ShareJoin在开发版中 ...

  8. Mysql系列六:(Mycat分片路由原理、Mycat常用分片规则及对应源码介绍)

    一.Mycat分片路由原理 我们先来看下面的一个SQL在Mycat里面是如何执行的: , ); 有3个分片dn1,dn2,dn3, id=5000001这条数据在dn2上,id=10000001这条数 ...

  9. JAVAEE——宜立方商城13:Mycat数据库分片、主从复制、读写分离、100%Linux中成功安装Mysql的方法

    1 海量数据的存储问题 如今随着互联网的发展,数据的量级也是撑指数的增长,从GB到TB到PB.对数据的各种操作也是愈加的困难,传统的关系性数据库已经无法满足快速查询与插入数据的需求.这个时候NoSQL ...

  10. JAVAEE——宜立方商城13:订单系统实现、订单生成、Mycat数据库分片

    1. 学习计划 1.订单系统实现 2.订单生成 3.Mycat数据库分片 2. 订单系统 2.1. 功能分析 1.在购物车页面点击“去结算”按钮,跳转到订单确认页面 a) 必须要求用户登录 b) 使用 ...

随机推荐

  1. 海上液化天然气 LNG 终端 | 图扑数字孪生

    关于 LNG 液化天然气 (Liquefied Natural Gas,简称 LNG) 在能源转型过程中被广泛认可为相对较清洁的能源选择. 相对于传统的煤炭和石油燃料,LNG 的燃烧过程产生的二氧化碳 ...

  2. 实践篇:1 虚拟机使用rmp方式安装部署GitLab-ce

    01 环境准备 电脑:MAC Air 虚拟机:VMware Fusion 12.2.3 Linux环境:CentOS 7 02 rpm方式安装部署GitLab服务 步骤1:centos 7 安装wge ...

  3. 后端程序员必会的前端知识-01:html、css

    第一章. HTML 与 CSS HTML 是什么:即 HyperText Markup language 超文本标记语言,咱们熟知的网页就是用它编写的,HTML 的作用是定义网页的内容和结构. Hyp ...

  4. Reactor 简介

    官方的介绍如下: Reactor is a fully non-blocking reactive programming foundation for the JVM, with efficient ...

  5. NSSCTF Round#16 Basic crypto misc-wp

    CRYPTO pr 题目 CRT from Crypto.Util.number import * import random flag=plaintext = 'NSSCTF{*********** ...

  6. TooKit助力开发者上云

    本文分享自华为云社区<华为云Classroom赋能-TooKit助力开发者上云>,作者:华为云PaaS服务小智 . 对于资深程序员而言,IDE是必不可少的,它好比是剑客手中的宝剑,IDE帮 ...

  7. 如何处理分析Flink作业反压的问题?

    摘要:反压是 Flink 应用运维中常见的问题,它不仅意味着性能瓶颈还可能导致作业的不稳定性. 反压(backpressure)是实时计算应用开发中,特别是流式计算中,十分常见的问题.反压意味着数据管 ...

  8. 教你使用Jupyter可视化查询语句的语法树

    摘要:本文以华为图引擎使用的cypher查询语言为例,将查询语句的解析结果(语法树)在jupyterLab上可视化. 本文分享自华为云社区<使用Jupyter可视化查询语句的语法树--以图查询语 ...

  9. Vue 应用程序性能优化:代码压缩、加密和混淆配置详解

    ​ 简介在 Vue 应用程序的开发中,代码压缩.加密和混淆是优化应用程序性能和提高安全性的重要步骤. Vue CLI 是一个功能强大的开发工具,它提供了方便的配置选项来实现这些功能.本文将介绍如何使用 ...

  10. 火山引擎DataTester智能发布:助力产品降低功能迭代风险

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群   对企业而言,应用大规模AB实验,可以帮助企业提高决策效率.降低试错成本,而近期火山引擎AB测试 DataTes ...