MySQL运维8-Mycat范围分表
一、范围分片
根据指定的字段及其配置的范围与数据节点的对应情况,来决定该数据属于哪一个分片。

说明1:范围分片会提前提供一个分片的范围默认是0-500万是一个分片,500万-1000万是一个分片,1000万-1500万是一个分片,超过1500万要重新设置。
说明2:这个范围我们可以根据自己的需要去自定义使用。

说明3:在配置schema.xml的时候,默认的分片规则 rule="auto-sharding-long" 就是范围分片规则
说明4:在rule.xml中有auto-sharding-long的定义,其分片的依据是 id 主键
说明5:在rule.xml中有auto-sharding-long的定义,其采用的算法是 rang-long 算法
说明6:在function rang-long中有一个property 属性,该属性引用了一个外部文件 “autopartition-long.txt” 文件,在这个文件中就是定义分片的范围,如果我们要实现自定义数据分片即修改该文件中的范围即可。
二、准备数据库

说明1:在三个数据数据节点上都先创建好需要使用的数据库range_db
三、配置schema.xml

说明1:新增schema标签,逻辑库的名称为range_db,逻辑表的名称为tb_range
说明2:分片规则为 rule="auto-sharding-long" 即范围分片

说明3:dn7,dn8,dn9对应的数据节点依然是dbhost1,dbhost2,dbhost3.

说明4:dbhost1数据节点为192,168.3.90
说明5:dbhost2数据节点为192.168.3.91
说明5:dbhost3数据节点为192.168.3.92
四、server.xml配置

说明1:给root用户添加range_db的操作权限
五、范围分片测试
首先重启Mycat

登录Mycat

查看逻辑库逻辑表

这里的tb_range只是逻辑库,而在MySQL中还并没有tb_range这个表,需要在Mycat中创建
create table tb_range (id int auto_increment primary key, name varchar(20));

插入一条数据,然后查看数据节点中对应的数据变化
insert into tb_range (id, name) values (1,'张三');

说明1:id=1的数据插入到了192.168.3.90的数据节点上了,我们采用的是默认的分片范围
说明2:继续添加一个id为5000000的数据看一下是否会继续插入到192.168.3.90这个数据节点上
insert into tb_range (id, name) values (5000000,'李四');

说明3:没有问题,id=5000000的也插入到了第一个数据节点上,继续测试id=5000001的数据
insert into tb_range (id, name) values (5000001,'王五');

说明4:id=5000001的数据,插入到了192.168.3.91第二个数据节点上了,说明5000000是第一个和第二个数据节点的分界线,我们在测试一下id=10000001
insert into tb_range (id, name) values (10000001,'赵六');

说明5:id=10000001的数据插入到了192.168.3.92第三个数据节点上了。继续测试一下15000001这个id超过了分片范围,看看是否还能成功?
insert into tb_range (id, name) values (15000001,'侯七');

说明6:这是就报错了,因为根据分片规则已经找不到15000001应该保存到那个分片了,如果要继续添加id的话,就需要在自定义去增加分片范围了,需要修改 “autopartition-long.txt”这个文件

修改了配置文件后,我们重新启动一下Mycat然后再次插入id=15000001数据试试

重新插入id=15000001的数据
insert into tb_range (id, name) values (15000001,'侯七');


说明7:修改分片范围后,id=15000001的数据也可以保存了。
总结:如果使用范围分片的时候,如果默认的分片范围满足不了需求,我们只需要修改 "autopartition-long.txt" 这个文件即可。
MySQL运维8-Mycat范围分表的更多相关文章
- 分享 : 警惕MySQL运维陷阱:基于MyCat的伪分布式架构
分布式数据库已经进入了全面快速发展阶段.这种发展是与时俱进的,与人的需求分不开,因为现在信息时代的高速发展,导致数据量和交易量越来越大.这种现象首先导致的就是存储瓶颈,因为MySQL数据库实质上还是一 ...
- 转:三思!大规模MySQL运维陷阱之基于MyCat的伪分布式架构
在微信公众号看到一篇关于mycat的文章,觉得分析的很不错,给大家分享一下 三思!大规模MySQL运维陷阱之基于MyCat的伪分布式架构 原文链接:https://mp.weixin.qq.com/s ...
- 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)基础笔试命令考察 1.开启MySQL服务 /etc/init.d/mysqld start service mysqld start systemctl start mysqld 2.检测端口是 ...
- Mysql系列四:数据库分库分表基础理论
一.数据处理分类 1. 海量数据处理,按照使用场景主要分为两种类型: 联机事务处理(OLTP) 面向交易的处理系统,其基本特征是原始数据可以立即传送到计算机中心进行处理,并在很短的时间内给出处理结果. ...
- mysql运维必会的一些知识点整理(转自民工哥)
(1)基础笔试命令考察 1.开启MySQL服务 /etc/init.d/mysqld start service mysqld start systemctl start mysqld 2.检测端口是 ...
- 搭建稳固的MySQL运维体系
MySQL 监控要点 MySQL 监控要点,主要涉及服务器和 MySQL 两个方向的监控告警. 在这两个监控告警方向需要重点关注监控策略.监控趋势图及报警方式. 监控策略指的是每个监控项的告警阈值,例 ...
- mycat 安装 分表 分库 读写分离
简单的 理解 一下 mycat :如图 mycat 是一个 连接数据库的中介.一个独立安装的 工具,他连接着真实的数据库,并且 把自己伪装成一个数据库. 程序连接 mycat ,mycat 连接 到真 ...
- 美图秀秀DBA谈MySQL运维及优化
美图秀秀DBA谈MySQL运维及优化 https://mp.weixin.qq.com/s?__biz=MzI4NTA1MDEwNg==&mid=401797597&idx=2& ...
随机推荐
- 《SQL与数据库基础》08. 多表查询
目录 多表查询 多表关系 一对多 多对多 一对一 多表查询概述 分类 内连接 外连接 自连接 联合查询 子查询 分类 标量子查询 列子查询 行子查询 表子查询 案例 本文以 MySQL 为例 多表查询 ...
- api接口对接如何实现,php如何对接api
API接口对接是现代软件开发中不可或缺的一部分,它允许不同的应用程序之间进行数据交换和服务调用.在PHP中,可以使用多种方式实现API接口的对接,包括基于HTTP协议的传统方法以及现代的API客户端库 ...
- vue3 甘特图(二):甘特图时间轴切换
vue3 甘特图(二):gantt时间轴切换 1.固定时间轴缩放级别 gantt.config.scale_unit = "month"; //时间轴单位 gantt.config ...
- 《Python魔法大冒险》008 石像怪的挑战:运算符之旅
小鱼和魔法师继续深入魔法森林.不久,他们来到了一个巨大的魔法石圈旁边.石圈中心有一个闪闪发光的魔法水晶,周围则是一些神秘的符号.但令人意外的是,水晶的旁边还有一个巨大的石像怪,它的眼睛散发着红色的光芒 ...
- Java实践项目 - 用户登录
Smiling & Weeping ----以花祈愿,祝你平安 当用户输入用户名和密码将数据提交给数据库进行查询,如果存在对应的用户名和密码,则表示登陆成功,登录成功之后跳转到系统的主页就是i ...
- 二叉搜索树(Binary Search Tree,BST)
二叉搜索树(Binary Search Tree,BST) 二叉搜索树(Binary Search Tree),也称二叉查找树或二叉排序树,是一种特殊的二叉树,它满足以下性质 对于二叉搜索树的每个节点 ...
- 5-MySQL列定义
1.列定义 说明:在MySQL中,列定义(Column Definition)是用于定义数据库表中每一列的结构的语句.它指定了列的名称.数据类型.长度.约束以及其他属性. 2.主键和自增 主键:PRI ...
- 「codeforces - 868F」Yet Another Minimization Problem
link. 值域分治优化决策单调性 DP 的 trick.朴素做法 trivial,不赘述. 考虑求取一个区间 \([l,r]\) 的 DP 值.先搞定在 \(m=\lfloor\frac{l+r}{ ...
- 如何在没有第三方.NET库源码的情况,调试第三库代码?
大家好,我是沙漠尽头的狼. 本方首发于Dotnet9,介绍使用dnSpy调试第三方.NET库源码,行文目录: 安装dnSpy 编写示例程序 调试示例程序 调试.NET库原生方法 总结 1. 安装dnS ...
- vue~封装一个文本框添加与删除的组件
标签组件的效果如下 组件作用 这是一个div,包含了两个文本框,后面是添加和删除按钮 添加按钮复制出新的div,除了文本框没有内容,其它都上面一样 删除按钮将当前行div删除 组件实现 <tem ...