mycat 单库分表实践
参考
https://blog.csdn.net/sq2006hjp/article/details/78732227
Mycat采用的水平拆分,不管是分库还是分表,都是水平拆分的。分库是指,把一个大表的数据,分为多个同名的表,分别存到不同的数据库;分表是指,把一个大表,拆成多个不同名的表,放在一个数据库里。这里不论是分库还是分表,分拆出来的表字段都是跟原表一模一样的。
Mycat提供的分片方案有很多,这里选用按月分片这个方案来分片,也就是说每个自然月的数据,会分到相应的表里面。
而这些表,都在咱们配置的db4这个库里面。
第一步:配置schema.xml
在schema 里设置测试表sqtestmonth,
定义分表的表明规则:subTables="sqtestmonth2017$1-12"
指定dataNode:dataNode="dn4"
设定分片规则:rule="sharding-by-month"
<table name="sqtestmonth" primaryKey="ID" subTables="sqtestmonth2017$1-12" dataNode="dn4" rule="sharding-by-month" />
<dataNode name="dn4" dataHost="localhost1" database="db4" />
<writeHost host="hostM1" url="localhost:3307" user="root"
password="123456">
第二步,配置rule.xml
设置日期格式和开始日期
<function name="partbymonth"
class="io.mycat.route.function.PartitionByMonth">
<property name="dateFormat">yyyy-MM-dd</property>
<property name="sBeginDate">2017-01-01</property>
</function>
<tableRule name="sharding-by-month">
<rule>
<columns>create_time</columns>
<algorithm>partbymonth</algorithm>
</rule>
</tableRule>
第三步,9066 load config,无需重启Mycat
mysql -uroot -proot -P9066 -h127.0.0.1
mysql> reload @@config;
Query OK, 1 row affected (0.12 sec)
Reload config success
第四步,mysql db4 建表
CREATE TABLE `sqtestmonth20171` (`id` int not null,`name` varchar(60) NULL, create_time DATE ,PRIMARY KEY (`id`));
CREATE TABLE `sqtestmonth20172` (`id` int not null,`name` varchar(60) NULL, create_time DATE ,PRIMARY KEY (`id`));
CREATE TABLE `sqtestmonth20173` (`id` int not null,`name` varchar(60) NULL, create_time DATE ,PRIMARY KEY (`id`));
CREATE TABLE `sqtestmonth20174` (`id` int not null,`name` varchar(60) NULL, create_time DATE ,PRIMARY KEY (`id`));
第五步,MYCAT 8066 插入数据
insert into sqtestmonth (id,name,create_time) values(1,'sq1', '2017-1-12');
insert into sqtestmonth (id,name,create_time) values(2,'sq2', '2017-1-22');
insert into sqtestmonth (id,name,create_time) values(3,'sq3', '2017-2-5');
insert into sqtestmonth (id,name,create_time) values(4,'sq4', '2017-2-12');
insert into sqtestmonth (id,name,create_time) values(5,'sq5', '2017-3-12');
结果:
1月的数据,都插入到了sqtestmonth20171这个表里面
2月的数据,都插入到了sqtestmonth20172这个表里面
3月的数据,都插入到了sqtestmonth20173这个表里面

mycat 单库分表实践的更多相关文章
- mycat 单库分表
上次把mycat的读写分离搞定了,这次试下单库分表,顾名思义就是在一个库里把一个表拆分为多个 需要配置的配置文件为 schema.xml 配置内容如下 <!DOCTYPE mycat:schem ...
- SpringBoot+Mybatis-Plus整合Sharding-JDBC5.1.1实现单库分表【全网最新】
一.前言 小编最近一直在研究关于分库分表的东西,前几天docker安装了mycat实现了分库分表,但是都在说mycat的bug很多.很多人还是倾向于shardingsphere,其实他是一个全家桶,有 ...
- Sharding-JDBC:单库分表的实现
剧情回顾 前面,我们一共学习了读写分离,垂直拆分,垂直拆分+读写分离.对应的文章分别如下: Sharding-JDBC:查询量大如何优化? Sharding-JDBC:垂直拆分怎么做? 通过上面的优化 ...
- Sharding-JDBC实现水平拆分-单库分表
参考资料:猿天地 https://mp.weixin.qq.com/s/901rNhc4WhLCQ023zujRVQ 作者:尹吉欢 当单表的数量急剧上升,超过了1千万以上,这个时候就要对表进行水平 ...
- Spring Boot中整合Sharding-JDBC单库分表示例
本文是Sharding-JDBC采用Spring Boot Starter方式配置第二篇,第一篇是读写分离讲解,请参考:<Spring Boot中整合Sharding-JDBC读写分离示例> ...
- springboot with appache sharding 3.1 单库分表
配置文件相关信息: #开发 server.port=7200 spring.application.name=BtspIsmpServiceOrderDev eureka.client.service ...
- mycat使用之MySQL单库分表及均分数据
转载自 https://blog.csdn.net/smilefyx/article/details/72810531 1.首先在Mycat官网下载安装包,这里就以最新的1.6版本为例,下载地址为: ...
- 分库分表实践-Sharding-JDBC
最近一段时间在研究分库分表的一些问题,正好周末有点时间就简单做下总结,也方便自己以后查看. 关于为什么要做分库分表,什么是水平分表,垂直分表等概念,相信大家都知道,这里就不在赘述了. 本文只讲述使用S ...
- sharding-jdbc5.0.0分表实践
本文基于shardingsphere-jdbc-core-spring-boot-starter 5.0.0,请注意不同版本的sharding-jdbc配置可能有不一样的地方,本文不一定适用于其它版本 ...
随机推荐
- 深入Spring Security-获取认证机制核心原理讲解
文/朱季谦 本文基于Springboot+Vue+Spring Security框架而写的原创笔记,demo代码参考<Spring Boot+Spring Cloud+Vue+Element项目 ...
- javascript面试题(一)
1. var bar = null; console.log(typeof bar === 'object'); //logs true! 尽管 typeof bar === "object ...
- Java生成1,2,2,3,3,3,4,4,4,4,5...序列
程序很简单,无须赘述. 竖向输出方式: public class Test { public static void main(String[] args) { int n=0; for(n=1;n& ...
- 干Java这一行,应该怎样提升自己?
前段时间,字节跳动在阿里巴巴的大本营杭州悄悄的建立一个研发中心,最近在疯狂招人. 相信最近一段时间,杭州的很多的互联网公司的开发人员都接到过猎头的电话.据了解,字节跳动杭州研发中心主要负责字节跳动新增 ...
- 深入理解Java之装箱与拆箱
一.Java数据类型 1.在说装箱与拆箱之前,先说一下Java的基本数据类型,Java从数据类型上可以划分为值类型与引用类型,值类型是四类八种,分别是: 整数型:byte̵,short̵,int̵,l ...
- App测试理论简介
一.App测试常见关注点 1.App的功能测试 功能测试都是我们首要测试的,只有功能实现了才算符合上线发布的最低标准.我们需要检测产品功能是否已实现.产品功能是否符合设计要求.产品功能是否有重复.产品 ...
- oracle之事务和锁
Oracle的事务和锁(PPT-I-283-293) 10.1 什么是事务 必须具备以下四个属性,简称ACID 属性:原子性(Atomicity): 事务是一个完整的操作.事务的各步操作是不可分的( ...
- python库的基本情况
主要三个库 time()函数获取浮点数 ctime()函数可以获取时间,还可以以一种可读的方式表示时间 gmtime()函数
- python中的方向控制函数
方向控制函数:控制海龟方向,包含绝对角度&海龟角度 改变海龟运行方向,让海龟转向 angle :改变行进方向,将海归运行方向改变为某一个绝对的角度 例如 将坐标系中的海龟方向改变为绝对系中的4 ...
- java虚拟机小贴士之GC分析
打印日志 通过加入 -XX:+PrintGCDetails 参数则可以打印详细GC信息至控制台.参数-verbose:gc也是可以,但不够详细.通过加入-XX:+PrintGCDateStamps则可 ...