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配置可能有不一样的地方,本文不一定适用于其它版本 ...
随机推荐
- springboot +jsp项目打包部署到华为云服务器
注:打包之前先保证你的项目本地运行没问题. 一.打包 打包有两种方式,打成jar包和打成war包.因为springboot有内置的服务器,所以选择打成jar包,这样云服务器就不用装tomcat了. 打 ...
- Thymeleaf 中如何实现including
Problem:Jsp中有including,Thymeleaf中有无类似的语法? Solution:有,Themeleaf中提供同样功能的标签是 th:fragment="blockNam ...
- .NET多线程(Thread,ThreadPool,Task,Async与Await)
.NET多线程是什么? 进程与线程 进程是一种正在执行的程序. 线程是程序中的一个执行流. 多线程是指一个程序中可以同时运行多个不同的线程来执行不同的任务. .NET中的线程 Thread是创建和控制 ...
- jenkins通过API触发构建任务
添加一个可变参数 配置token 参数用 ${参数名称} 引用 外部调用url地址:ip:port/view/视图名称/job/任务名称/buildWithParameters?token=test& ...
- Go Http包解析:为什么需要response.Body.Close()
简单来讲就是:为了提高效率,http.Get 等请求的 TCP 连接是不会关闭的(再次向同一个域名请求时,复用连接),所以必须要手动关闭. 2019-01-24 10:43:32 更新 不管是否使用 ...
- python:列表生成式和三元表达式、匿名函数
一.列表生成式 1.列表生成式就是python内置的一种用来生成list的生成式. 比如下面这个例子: l=[] for i in range(10) list.append(i) 生成一个列表要用循 ...
- 自然常数e的含义
e是一个重要的常数,但是它的直观含义却不像 π 那么明了.我们都知道,圆的周长与直径之比是一个常数,这个常数被称为圆周率,记作 π = 3.14159......可是e代表什么呢? e是“指数”(ex ...
- mysql主从模式部署
1.下载tar.gz格式的安装包 下载地址https://dev.mysql.com/downloads/mysql/ 2.解压 tar -zvxf mysql-5.7.19-linux-glibc2 ...
- tagCould3d 移动端优化版
针对https://github.com/bitjjj/JS-3D-TagCloud这个版本的做了移动端性能优化(使用transform做偏移及缩放,优化帧).基本原理一致. class TagCou ...
- turtle空间坐标系
利用空间坐标改变行进 以海龟的角度来看,无论往那个方向运行,都叫正方向 turtle.fd向海龟的正前方运行,turtle.bk向反方向运行