参考

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 单库分表实践的更多相关文章

  1. mycat 单库分表

    上次把mycat的读写分离搞定了,这次试下单库分表,顾名思义就是在一个库里把一个表拆分为多个 需要配置的配置文件为 schema.xml 配置内容如下 <!DOCTYPE mycat:schem ...

  2. SpringBoot+Mybatis-Plus整合Sharding-JDBC5.1.1实现单库分表【全网最新】

    一.前言 小编最近一直在研究关于分库分表的东西,前几天docker安装了mycat实现了分库分表,但是都在说mycat的bug很多.很多人还是倾向于shardingsphere,其实他是一个全家桶,有 ...

  3. Sharding-JDBC:单库分表的实现

    剧情回顾 前面,我们一共学习了读写分离,垂直拆分,垂直拆分+读写分离.对应的文章分别如下: Sharding-JDBC:查询量大如何优化? Sharding-JDBC:垂直拆分怎么做? 通过上面的优化 ...

  4. Sharding-JDBC实现水平拆分-单库分表

    参考资料:猿天地   https://mp.weixin.qq.com/s/901rNhc4WhLCQ023zujRVQ 作者:尹吉欢 当单表的数量急剧上升,超过了1千万以上,这个时候就要对表进行水平 ...

  5. Spring Boot中整合Sharding-JDBC单库分表示例

    本文是Sharding-JDBC采用Spring Boot Starter方式配置第二篇,第一篇是读写分离讲解,请参考:<Spring Boot中整合Sharding-JDBC读写分离示例> ...

  6. springboot with appache sharding 3.1 单库分表

    配置文件相关信息: #开发 server.port=7200 spring.application.name=BtspIsmpServiceOrderDev eureka.client.service ...

  7. mycat使用之MySQL单库分表及均分数据

    转载自 https://blog.csdn.net/smilefyx/article/details/72810531 1.首先在Mycat官网下载安装包,这里就以最新的1.6版本为例,下载地址为:  ...

  8. 分库分表实践-Sharding-JDBC

    最近一段时间在研究分库分表的一些问题,正好周末有点时间就简单做下总结,也方便自己以后查看. 关于为什么要做分库分表,什么是水平分表,垂直分表等概念,相信大家都知道,这里就不在赘述了. 本文只讲述使用S ...

  9. sharding-jdbc5.0.0分表实践

    本文基于shardingsphere-jdbc-core-spring-boot-starter 5.0.0,请注意不同版本的sharding-jdbc配置可能有不一样的地方,本文不一定适用于其它版本 ...

随机推荐

  1. Oracle WITH 语句 语法

    With语句可以在查询中做成一个临时表/View,用意是在接下来的SQL中重用,而不需再写一遍. With Clause方法的优点: 增加了SQL的易读性,如果构造了多个子查询,结构会更清晰. 示例: ...

  2. 20190918-03关机重启命令及修改root密码 000 006

    (1)sync   (功能描述:将数据由内存同步到硬盘中) (2)halt (功能描述:关闭系统,等同于shutdown -h now 和 poweroff) (3)reboot (功能描述:就是重启 ...

  3. [Failed]Tomcat cluster方案共享session配置出错,sigh....

    后继发展:https://www.cnblogs.com/xiandedanteng/p/12134300.html 参考网文一:多个Tomcat之间实现Session共享 参考网文二:Tomcat官 ...

  4. 封装React AntD的dialog弹窗组件

    前一段时间分享了基于vue和element所封装的弹窗组件(封装Vue Element的dialog弹窗组件),今天就来分享一个基于react和antD所封装的弹窗组件,反正所使用的技术还是那个技术, ...

  5. 反射之hasattr() getattr() setattr() 函数

    Python的hasattr() getattr() setattr() 函数使用方法详解 hasattr(object, name)判断object中有没有一个name字符串对应的方法或属性,返回B ...

  6. 漏洞扫描工具acunetix破解安装步骤

    Acunetix 12破解版安装教程 下载地址: 链接:https://pan.baidu.com/s/1jsKkrhOcx_O7ib7FQ6pidw 提取码:pwdj 1.下载软件压缩包文件,首先点 ...

  7. Linux 【Shell脚本经典案例】

    Shell 简介 hell是linux的一外壳,它包在linux内核的外面,为用户和内核之间的交互提供了一个接口 当用户下达指令给操作系统的时候,实际上是把指令告诉shell,经过shell解释,处理 ...

  8. xml的复习

    xml的复习 1.概念:可扩展标记语言 2.功能: *存储数据    1.配置文件     2.在网络中传播 3.xml与html区别: xml语法严格,HTML语法松散 xml存储数据,HTML展示 ...

  9. 关于CountDownLatch、CyclicBarrier和Semaphore

    这次工作使用CountDownLatch来将异步的通信改成同步 扩散了解下其他两种 Java并发编程:CountDownLatch.CyclicBarrier和Semaphore 在java 1.5中 ...

  10. 搞 Java 的年薪 40W 是什么水平?

    文章首发于[陈树义的博客],点击跳转到原文https://www.cnblogs.com/chanshuyi/p/how_to_earn_400_thousand_per_year.html 我 20 ...