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& ...
随机推荐
- Redis的五大数据类型的数据结构
概述 Redis底层有六种数据类型包括:简单动态字符串.双向链表.压缩列表.哈希表.跳表和整数数组.这六种数据结构五大数据类型关系如下: String:简单动态字符串 List:双向链表.压缩列表 ...
- 程序员视角下的API数据接口对接指南
在当今互联网时代,许多应用程序和网站都需要使用第三方的API接口来获取数据.API(Application Programming Interface)允许不同的应用程序之间进行数据交互,从而提高 ...
- 解密Prompt系列14. LLM Agent之搜索应用设计:WebGPT & WebGLM & WebCPM
前两章,我们分别介绍了基于微调和prompt的工具调用方案,核心都是如何让大模型和工具进行交互,包括生成工具调用语句和处理工具调用请求.不过在实际应用中,想要设计一个可以落地的LLM Agent,需要 ...
- SpingCloud:Gateway+Nginx+Stomp+Minio构建聊天室并进行文件传输
注:本人使用阿里云服务器(安装mino)+本地虚拟机(安装nginx)进行,理论上完全在本地进行也可以. 1.前期准备: 1.将本地虚拟机设置为静态ip且能ping通外网,参考网址:https://w ...
- Redis漏洞总结--未授权--沙箱绕过--(CNVD-2015-07557)&&(CNVD-2019-21763)&&(CVE-2022-0543)
Redis未授权--沙箱绕过--(CNVD-2015-07557)&&(CNVD-2019-21763)&&(CVE-2022-0543) 环境复现 采用Vulfocu ...
- DBA容灾与备份恢复:闪回应用及实践(一)
闪回应用及实践 针对主机故障.网络故障.系统软件故障.存储介质故障.人为操作失误等各类故障,可以通过RAC.RMAN.Data Guard等成熟的解决方案来处理,不过对于人为操作失误防范的首推技术还是 ...
- CPU占用99%
晚间迁移数据库后,第二天下午来调优,发现CPU占用达到惊人的99%,如下: 分析15:00-16:00期间AWR报告,发现SQL硬解析严重,如下: 每秒硬解析达到69.9次,library hit%太 ...
- 12. 用Rust手把手编写一个wmproxy(代理,内网穿透等), TLS的双向认证信息及token验证
12. 用Rust手把手编写一个wmproxy(代理,内网穿透等), TLS的双向认证信息及token验证 项目 ++wmproxy++ gite: https://gitee.com/tickbh/ ...
- 14.9 Socket 高效文件传输
网络上的文件传输功能也是很有必要实现一下的,网络传输文件的过程通常分为客户端和服务器端两部分.客户端可以选择上传或下载文件,将文件分块并逐块发送到服务器,或者从服务器分块地接收文件.服务器端接收来自客 ...
- 如何在linux(Ubuntu)下安装unity(Unity engine游戏引擎)
如果直接从unity官网下载unityhub的deb包,直接安装有可能出现unityhub打不开/打开缓慢/无法登陆/无法申请密钥等问题. 正解:从Unity官方源下载unity 1.先添加unity ...