009、Mycat分库分表之按月分片
本文最后更新于 257 天前,其中的信息可能已经过时,如有错误请发送邮件到wuxianglongblog@163.com

Mycat分库分表之按月分片

一、按照月分片

  使用场景为按照自然月来分片,每个自然月为一个分片,但是一年有12个月,是不是要有12个数据节点才行呢?并不是。例如我现在只有三个分片数据库,这样就可以1月在第一个数据分片中,2月在第二个数据分片中,3月在第三个数据分片中,当来到4月的时候,就会重新开始分片,4月在第一个数据分片,5月在第二个数据分片,6月在第三个数据分片,以此类推。

  

img

  说明1:从开始时间开始,一个月为一个分片,到达结束时间之后,会重复开始分片插入

  说明2:配置表的dataNode的分片,必须和分片规则数量一致,例如:2023-01-01到2023-12-31,一共就需要12个数据节点

  说明3:我只有三个数据节点,所以配置表中,我只需要配置2023-01-01到2023-03-31即可,即使一年又12个月会可以重复插入的。

二、准备工作

  使用之前已经创建tb_logs数据库

  

img

三、rule.xml配置

  

img

  说明1:分片规则:"sharding-by-month"

  说明2:分库分表字段为create_time

  说明3:dateFormat为时间格式

  说明4:sBeginDate是配置的起始日期

  说明5:sEndDate是配置的结束日期

  说明6:有几台数据节点,就只需要配置几个月的范围即可,即开始日期到结束日期的月份要等于数据节点的数。

四、配置schem.xml

  

img

  说明1:逻辑库为hl_logs

  说明2:逻辑表为tb_month

  说明3:分片规则为:"sharding-by-month"

  

img

  

img

  说明4:dn4对应的是dbhost1即192.168.3.90分片

  说明5:dn5对应的是dbhost2即192.168.3.91分片

  说明6:dn6对应的是dbhost3即192.168.3.92分片

五、配置server.xml

  

img

  说明1:在之前的文章中已经将tb_logs表添加到root用户的权限中了,所以这里不需要更改即可。

六、按(月)日期分片测试

  首先重启Mycat

  

img

  登录Mycat

  

img

  查看逻辑库和逻辑表

  

img

  这里的tb_month只是逻辑库,而在MySQL中还并没有tb_month这个表,需要在Mycat中创建

create table tb_month(id int auto_increment primary key, name varchar(20), create_time varchar(19));

  

img
 

  插入一组测试数据

insert into tb_month(name, create_time) values ("张三", "2023-01-02");
insert into tb_month(name, create_time) values ("李四", "2023-02-12");
insert into tb_month(name, create_time) values ("王五", "2023-03-22");
insert into tb_month(name, create_time) values ("赵六", "2023-04-18");
insert into tb_month(name, create_time) values ("侯七", "2024-05-01");
insert into tb_month(name, create_time) values ("孙八", "2024-06-11");
insert into tb_month(name, create_time) values ("周九", "2024-07-21");

  

img

  

img

  说明1:一共三个数据节点,其中1月,4月,7月,10月的数据会分布在192.168.3.90第一个数据节点上,OK

  

img

  说明2:一共三个数据节点,其中2月,5月,8月,11月的数据会分布在192.168.3.91第二个数据节点上,OK

  

img

  说明3:一共三个数据节点,其中3月,6月,9月,12月的数据会分布在192.168.3.92第三个数据节点上,OK

  

img

  说明4:在Mycat上进行查询的数据是,所有数据节点的全集。按(月)日期分片是水平分库分表的一种方式。

谨此笔记,记录过往。凭君阅览,如能收益,莫大奢望。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇