MySQL数据库实践学习(二十三)
2023-06-13 09:13:59 时间
3.5.3.9 自然月分片
1). 介绍
使用场景为按照月份来分片, 每个自然月为一个分片。
2). 配置
schema.xml中逻辑表配置:
<!-- 按自然月分片 -->
<table name="tb_monthpart" dataNode="dn4,dn5,dn6" rule="sharding-by-month" />
schema.xml中数据节点配置:
<dataNode name="dn4" dataHost="dhost1" database="itcast" />
<dataNode name="dn5" dataHost="dhost2" database="itcast" />
<dataNode name="dn6" dataHost="dhost3" database="itcast" />
rule.xml中分片规则配置:
<tableRule name="sharding-by-month">
<rule>
<columns>create_time</columns>
<algorithm>partbymonth</algorithm>
</rule>
</tableRule>
<function name="partbymonth" class="io.mycat.route.function.PartitionByMonth">
<property name="dateFormat">yyyy-MM-dd</property>
<property name="sBeginDate">2022-01-01</property>
<property name="sEndDate">2022-03-31</property>
</function>
<!--
从开始时间开始,一个月为一个分片,到达结束时间之后,会重复开始分片插入
配置表的 dataNode 的分片,必须和分片规则数量一致,例如 2022-01-01 到 2022-12-31 ,一
共需要12个分片。
-->
分片规则属性含义:
3). 测试
配置完毕后,重新启动MyCat,然后在mycat的命令行中,执行如下SQL创建表、并插入数据,查看数据分布情况。
create table tb_monthpart(
id bigint not null comment 'ID' primary key,
name varchar(100) null comment '姓名',
create_time date null
);
insert into tb_monthpart(id,name ,create_time) values(1,'Tom','2022-01-01');
insert into tb_monthpart(id,name ,create_time) values(2,'Cat','2022-01-10');
insert into tb_monthpart(id,name ,create_time) values(3,'Rose','2022-01-31');
insert into tb_monthpart(id,name ,create_time) values(4,'Coco','2022-02-20');
insert into tb_monthpart(id,name ,create_time) values(5,'Rose2','2022-02-25');
insert into tb_monthpart(id,name ,create_time) values(6,'Coco2','2022-03-10');
insert into tb_monthpart(id,name ,create_time) values(7,'Coco3','2022-03-31');
insert into tb_monthpart(id,name ,create_time) values(8,'Coco4','2022-04-10');
insert into tb_monthpart(id,name ,create_time) values(9,'Coco5','2022-04-30');
相关文章
- MySQL数据库原理学习(四十二)
- mysql函数报This function has none of DETERMINISTIC, NO SQL,详解数据库
- 库 密码解决MySQL数据库遗失密码问题(mysql找回数据)
- VB6驱动MySQL实现数据库连接(vb6mysql驱动)
- 设计MySQL 数据库之精彩试题设计(mysql数据库试题)
- MySQL数据库的完善卸载实践(mysql数据库卸载干净)
- MySQL如何入门学习?(怎么使用mysql)
- MySQL:如何使用条件筛选正确查询数据(mysql条件筛选)
- MySQL自增长主键设置指南(mysql设置自增长主键)
- 使用MySQL数据库导出工具轻松输出数据(mysql数据库导出工具)
- Connecting Ruby to MySQL: A Comprehensive Guide for Developers(ruby连接mysql)
- MySQL:快速添加表格数据(mysql 表添加数据)
- 深入探究MySQL性能:如何高效查看数据库性能指标(mysql 性能 查看)
- MySQL如何快捷更改密码(mysql更改密码)
- 深入理解MySQL中blob字段长度限制(mysql中blob长度)
- MySQL驱动实现Birt数据库报表功能(birt mysql驱动)
- 构建App端Mysql数据库,打造智能体验(app mysql数据库)
- 如何利用CMD编写MySQL命令(cmd写mysql命令)
- 破解MySQL数据库的233种方法(233 mysql)
- MySQL 数据库让查询年龄变得更轻松的一年(mysql一年查询岁数)
- 如何正确利用MySQLpclose关闭MySQL连接(mysql_pclose)
- MySQL数据库SQL语句指南(mysql下sql语句)
- MySQL为何有些人不喜欢使用外键设计数据库表结构(mysql 不要外键)
- MySQL索引问题无法创建索引的解决方法(mysql不能创建索引)
- MySQL下载应该选择多少位的版本(mysql下载多少位的)