MySQL运维13-Mycat分库分表之按月分片
一、按照月分片
使用场景为按照自然月来分片,每个自然月为一个分片,但是一年有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上进行查询的数据是,所有数据节点的全集。按(月)日期分片是水平分库分表的一种方式。
MySQL运维13-Mycat分库分表之按月分片的更多相关文章
- Mysql系列五:数据库分库分表中间件mycat的安装和mycat配置详解
一.mycat的安装 环境准备:准备一台虚拟机192.168.152.128 1. 下载mycat cd /softwarewget http:-linux.tar.gz 2. 解压mycat tar ...
- MySQL+MyCat分库分表 读写分离配置
一. MySQL+MyCat分库分表 1 MyCat简介 java编写的数据库中间件 Mycat运行环境需要JDK. Mycat是中间件.运行在代码应用和MySQL数据库之间的应用. 前身 : cor ...
- Mysql系列四:数据库分库分表基础理论
一.数据处理分类 1. 海量数据处理,按照使用场景主要分为两种类型: 联机事务处理(OLTP) 面向交易的处理系统,其基本特征是原始数据可以立即传送到计算机中心进行处理,并在很短的时间内给出处理结果. ...
- 《MyCat分库分表策略详解》
在我们的项目发展到一定阶段之后,随着数据量的增大,分库分表就变成了一件非常自然的事情.常见的分库分表方式有两种:客户端模式和服务器模式,这两种的典型代表有sharding-jdbc和MyCat.所谓的 ...
- 3.Mysql集群------Mycat分库分表
前言: 分库分表,在本节里是水平切分,就是多个数据库里包含的表是一模一样的. 只是把字段散列的分到不同的库中. 实践: 1.修改schema.xml 这里是在同一台服务器上建立了4个数据库db1,db ...
- MyCat分库分表入门
1.分区 对业务透明,分区只不过把存放数据的文件分成了许多小块,例如mysql中的一张表对应三个文件.MYD,MYI,frm. 根据一定的规则把数据文件(MYD)和索引文件(MYI)进行了分割,分区后 ...
- Mycat分库分表(一)
随着业务变得越来越复杂,用户越来越多,集中式的架构性能会出现巨大的问题,比如系统会越来越慢,而且时不时会宕机,所以必须要解决高性能和可用性的问题.这个时候数据库的优化就显得尤为重要,在说优化方案前,先 ...
- mycat分库分表 看这一篇就够了
之前我们已经讲解过了数据的切分,主要有两种方式,分别是垂直切分和水平切分,所谓的垂直切分就是将不同的表分布在不同的数据库实例中,而水平切分指的是将一张表的数据按照不同的切分规则切分在不同实例的相同 ...
- MyCat | 分库分表实践
引言 先给大家介绍2个概念:数据的切分(Sharding)根据其切分规则的类型,可以分为两种切分模式. 切分模式 一种是按照不同的表(或者Schema)来切分到不同的数据库(主机)之上,这种切可以称之 ...
- mycat 分库分表
单库分表已经在上篇写过了,这次写个分库分表,不同在于配置文件上的一点点不同 <!DOCTYPE mycat:schema SYSTEM "schema.dtd"> &l ...
随机推荐
- 程序员视角下的API数据接口对接指南
在当今互联网时代,许多应用程序和网站都需要使用第三方的API接口来获取数据.API(Application Programming Interface)允许不同的应用程序之间进行数据交互,从而提高 ...
- 如何通过API接口获取淘宝的店铺所有商品详情
在电子商务领域中,淘宝是亚洲最大的在线交易平台之一,拥有海量的商品资源和消费者.如果你是一名开发者,想要在自己的网站或者APP中嵌入淘宝商品资源,那么你就需要通过淘宝开放平台提供的API接口来获取这些 ...
- VR国标
<软件基本要求与测试方法>
- 浅聊一下SpringMVC的核心组件以及通过源码了解其执行流程
浅聊一下SpringMVC的核心组件以及通过源码了解其执行流程 MVC作为WEB项目开发的核心环节,正如三个单词的分解那样,Controller(控制器)将View(视图.用户客户端)与Model(j ...
- Seata AT和XA模式
一.分布式事务产生得原因: 1.1.数据库分库分表 当数据库单表一年产生的数据超过1000W,那么就要考虑分库分表,具体分库分表的原理在此不做解释,以后有空详细说,简单的说就是原来的一个数据库变成了多 ...
- MPI转以太网Plus模块Modbus连接两台变频器通信案例
MPI转以太网Plus模块Modbus主站连接两台变频器通信案例 MPI转以太网Plus模块连接200PLC无需编程实现Modbus主从站功能与2台变频器modbus通信:以下就是MPI转以太网模块作 ...
- Go语言系列——Go语言介绍
文章目录 01-Go语言介绍 一 Go语言介绍 二 Go语言特性 三 Go语言发展(版本/特性) 四 Go语言应用 谁在用 Google Facebook 腾讯 百度 京东 小米 360 应用领域 五 ...
- 深入理解 Skywalking Agent
概述 Agent 功能介绍 + 整体结构 + 设计 插件机制详解 Trace Segment Span 详解 异步 Trace 详解 如何正确地编写插件并防止内存泄漏 扩展:如何基于 Skywalki ...
- vue之留言板
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Python 利用pandas 和 matplotlib绘制柱状图
当你需要展示数据时,图表是一个非常有用的工具.Python 中的 pandas 和 matplotlib 库提供了丰富的功能,可以帮助你轻松地绘制各种类型的图表.本文将介绍如何使用这两个库,绘制一个店 ...