参考

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. 高可用服务之Keepalived基础入门

    前面我们聊了聊高可用集群corosync+pacemaker的相关概念以及相关工具的使用和说明,回顾请参考https://www.cnblogs.com/qiuhom-1874/category/18 ...

  2. idea中右击的快捷键都找不到 Diagrams

    今天突然发现了一件很恐怖的事情,那就是我的IDEA的右击中找不到Diagrams了,因为我是用这个东西打开 .bpmn文件生成png的,突然没了.. 说一下解决吧 在FIle -> settin ...

  3. FastJSON解析JSON的时候保证深堆的顺序

    普通的JSONObject.parseObject(),解析的时候,底层采用HashMap解析所以是无序的, JSONObject params = JSONObject.parseObject(ex ...

  4. Cocos Creator 性能优化:DrawCall

    前言 在游戏开发中,DrawCall 作为一个非常重要的性能指标,直接影响游戏的整体性能表现. 无论是 Cocos Creator.Unity.Unreal 还是其他游戏引擎,只要说到游戏性能优化,D ...

  5. SQL分词器1.10版

    处理SQL及分词效果: select * from ( select rownum as rn,tb1.stuid,tb1.summary from ( select stuid,sum(score) ...

  6. Sympy解方程-求极限-微分-积分-矩阵运算

    简介 Sympy是一个Python的科学计算库,用一套强大的符号计算体系完成诸如多项式求值.求极限.解方程.求积分.微分方程.级数展开.矩阵运算等等计算问题.虽然Matlab的类似科学计算能力也很强大 ...

  7. js中数组扁平化处理

    ‍

  8. spring boot+spring security集成以及Druid数据库连接池的问题

    贴工程目录,其中bll目录下是service+dao层,common是一些公用的模块及功能类,web是controller层 用到了druid及Redis,工具及配置类目录(本文不介绍如何配置drui ...

  9. MYSQL中的where ‘1=1‘ 探讨

    在学习MySQL时候,关于MySQL注入的例子 首先针对以下代码,实现的是关于sql注入时,一个普通登录所产生的的问题 package com.java.lesson02; import com.ja ...

  10. 轻松上手SpringBoot Security + JWT Hello World示例

    前言 在本教程中,我们将开发一个Spring Boot应用程序,该应用程序使用JWT身份验证来保护公开的REST API.在此示例中,我们将使用硬编码的用户和密码进行用户身份验证. 在下一个教程中,我 ...