1、安装Mysql
2、安装Mycat
创建数据库db1,将订单表order每天的数据存在一张表中。
server.xml文件主要配置
<user name="root" defaultAccount="true">
<property name="password">123456</property>
<property name="schemas">TESTDB</property>
<property name="defaultSchema">TESTDB</property>
<!--No MyCAT Database selected 错误前会尝试使用该schema作为schema,不设置则为null,报错 -->
<!-- 表级 DML 权限设置 -->
<!--
<privileges check="false">
<schema name="TESTDB" dml="0110" >
<table name="tb01" dml="0000"></table>
<table name="tb02" dml="1111"></table>
</schema>
</privileges>
-->
</user>
schema.xml
<schema name="TESTDB" checkSQLschema="true" sqlMaxLimit="100" randomDataNode="dn1">
<!--按天分表,需要在数据库中先把表建好,不然操作表的时候会报错-->
<table name="order" dataNode="dn1" subTables="order202109$1-5" rule="sharding-by-date" />
</schema>
rule.xml
<tableRule name="sharding-by-date">
<rule>
<columns>createTime</columns>
<algorithm>partbyday</algorithm>
</rule>
</tableRule>
<function name="partbyday"
class="io.mycat.route.function.PartitionByDate">
<property name="dateFormat">yyyy-MM-dd</property>
<!-- <property name="sNaturalDay">0</property> -->
<property name="sBeginDate">2021-09-01</property>
<!-- <property name="sEndDate">2014-01-31</property> -->
<property name="sPartionDay">1</property>
</function>
修改sequence_conf.properties文件
#ORDER是表名,必须大写
#CURID是指表的主键id已经使用到1000001了,下一条数据id就是1000002
ORDER.HISIDS=
ORDER.MINID=1001
ORDER.MAXID=99999999999
ORDER.CURID=1000001
修改server.xml文件
<property name="sequnceHandlerType">0</property> <!--修改主键生成策略-->
修改schema.xml文件,添加 primaryKey=“id” autoIncrement=“true”
<table name="order" dataNode="dn1" primaryKey="id" autoIncrement="true" subTables="order202109$1-5" rule="sharding-by-date" />
执行 mycat start,如下说明启动成功。
D:\mycat\bin>mycat start
wrapper | Starting the Mycat-server service...
wrapper | Mycat-server started.
在db1中首先创建表
CREATE TABLE `order2021091` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '编号' ,`uid` int(11) NULL COMMENT '用户编号' ,`createTime` date NOT NULL COMMENT '创建时间' ,PRIMARY KEY (`id`));
CREATE TABLE `order2021092` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '编号' ,`uid` int(11) NULL COMMENT '用户编号' ,`createTime` date NOT NULL COMMENT '创建时间' ,PRIMARY KEY (`id`));
CREATE TABLE `order2021093` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '编号' ,`uid` int(11) NULL COMMENT '用户编号' ,`createTime` date NOT NULL COMMENT '创建时间' ,PRIMARY KEY (`id`));
CREATE TABLE `order2021094` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '编号' ,`uid` int(11) NULL COMMENT '用户编号' ,`createTime` date NOT NULL COMMENT '创建时间' ,PRIMARY KEY (`id`));
CREATE TABLE `order2021095` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '编号' ,`uid` int(11) NULL COMMENT '用户编号' ,`createTime` date NOT NULL COMMENT '创建时间' ,PRIMARY KEY (`id`));
连接Mycat,插入数据
INSERT INTO `order` (`uid`, `createTime`) VALUES('1', '2021-09-01');
INSERT INTO `order` (`uid`, `createTime`) VALUES('2', '2021-09-02');
INSERT INTO `order` (`uid`, `createTime`) VALUES('3', '2021-09-03');
INSERT INTO `order` (`uid`, `createTime`) VALUES('4', '2021-09-04');
INSERT INTO `order` (`uid`, `createTime`) VALUES('5', '2021-09-05');
执行完成后,检查db1库中的表的数据
表order2021091
表order2021092
表order2021093
表order2021094
表order2021095
连接Mycat,查询数据
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。