首页 > 数据库 >MySQL运维13-Mycat分库分表之按月分片

MySQL运维13-Mycat分库分表之按月分片

时间:2023-12-20 19:46:23浏览次数:47  
标签:13 分库 运维 create month 说明 分片 tb 节点

一、按照月分片

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

  

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

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

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

二、准备工作

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

  

三、rule.xml配置 

  

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

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

  说明3:dateFormat为时间格式

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

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

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

四、配置schem.xml

  

  说明1:逻辑库为hl_logs

  说明2:逻辑表为tb_month

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

  

  

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

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

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

五、配置server.xml

  

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

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

  首先重启Mycat

  

  登录Mycat

  

  查看逻辑库和逻辑表

  

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

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

     

  插入一组测试数据

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");

  

  

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

  

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

  

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

  

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

 

 

 

  

标签:13,分库,运维,create,month,说明,分片,tb,节点
From: https://www.cnblogs.com/Se7eN-HOU/p/17914692.html

相关文章

  • 突发!13家中企被美列入“未经验证清单”,嘉立创、芯云智慧等公司在列
    12月19日消息,美国商务部工业与安全局(BIS)发布通告,公布了13家位于中国的企业名单,宣称它们被列入“未经验证清单”(UVL),该决定将于2023年12月19日正式生效。据百能云芯电子元器件商城了解,BIS在通告中详细列出了这些企业的名称和地址,其中包括两家隶属于富士康旗下的公司:富联精密电子(天津)......
  • 关键字 开发-13 API与用例分层
    前言前面我们都是在yml文件中写单个用例的去调用,如果后期涉及到业务流程的时候,单个用例就无法满足需要测试的业务流程。如何实现这个功能,我们可以将用例和api进行分离,api层只写单个接口的数据,然后在用例层处理业务流程,不断的调用api的接口,从而可以满足我们的需求。那么这篇将讲如......
  • 【全志T113-i】OK113i-S开发板-2适配10寸LCD显示
     前言本文介绍如何在OK113i-S开发板上适配一个自己的10寸LCD。OK113i-S是一个优秀的开发板,支持lvds单8,双8显示,最大分辨率1280x800也支持RG666显示,由于我手头只有lvds单8,40pin的显示器,今天我就适配一下这个LCD的显示。显示效果编辑设备接线我这个转接板是两部分,左边的是触摸线,右......
  • MySQL运维12-Mycat分库分表之按天分片
    一、按天分片指定一个时间周期,将数据写入一个数据节点中,例如:第1-10天的数据,写入到第一个数据节点中,第2-20天的数据写入到第二个节点中,第3-30天的数据节点写入到第三个数据节点中。   说明1:按天分片要配置一个起始日期,一个结束日期,一个分片间隔时间三个参数......
  • 每日导数13
    越复杂越简单,构造问题已知函数\(f(x)=(\lnx-2x+a)\lnx\)\((1)\)当\(a=2\)时,求\(f(x)\)的单调性\((2)\)若\(f(x)\leq\dfrac{e^x}{x}-x^2+ax-a\),求实数\(a\)的取值范围.解\((1)\)\(a=2,f(x)=(\lnx-2x+2)\lnx=\ln^2x-2x\lnx+2\lnx\)\(f^{\prime}(x)=\dfrac{2\ln......
  • 13.元素定位工具
    uiautomatorviewer工具安装工具的安装:AndroidSDK自带的界面分析工具打开 tools/bin 目录下的 uiautomatorviewer 程序uiautomatorviewer工具功能介绍第一个是通过分析给定的文件定位第二个是将当前界面截图并分析xml结构第三个与第二个功能类似,但它会对页面内容......
  • openGauss学习笔记-165 openGauss 数据库运维-备份与恢复-导入数据-使用COPY FROM STD
    openGauss学习笔记-165openGauss数据库运维-备份与恢复-导入数据-使用COPYFROMSTDIN导入数据-通过本地文件导入导出数据165.1示例1:通过本地文件导入导出数据在使用JAVA语言基于openGauss进行二次开发时,可以使用CopyManager接口,通过流方式,将数据库中的数据导出到本地文件或者......
  • CF1913 E Matrix Problem 题解
    LinkCF1913EMatrixProblemQuestion给定一个\(n\timesm\)的01矩阵,你可以把矩阵中的任意一个元素01翻转需要最后的矩阵满足,每行\(1\)的个数有\(A[i]\)个,每列\(1\)的个数有\(B[i]\)个Solution这貌似是一道非常经典的费用流题目我们建立\(n\)个行节点,\(m......
  • [排序,贪心,置换环]洛谷P1327&&P8637,双倍经验
    前置知识:置换环,最小交换次数https://blog.csdn.net/yunxiaoqinghe/article/details/113153795?ops_request_misc=&request_id=&biz_id=102&utm_term=%E6%9C%80%E5%B0%91%E4%BB%BB%E6%84%8F%E4%BA%A4%E6%8D%A2%E6%8E%92%E5%BA%8F%E8%AF%81%E6%98%8E%E7%94%A8%E7%BD%AE%E6%8D......
  • MySQL运维11-Mycat分库分表之应用指定分片
    一、应用指定分片此规则是在运行阶段有应用自主决定路由到那个分片,根据提供的字段,然后按照指定的规则,截取该字段的部分子字符串当做分片的依据,该分别方法比较灵活,适用于某个字段有几个特殊的字符串拼接而成的这种场景,例如:一个学校的学号:小学部的学号以0开头,形式为:0xxxxx(......