一、范围分片

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

  

  说明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范围分表的更多相关文章

  1. 分享 : 警惕MySQL运维陷阱:基于MyCat的伪分布式架构

    分布式数据库已经进入了全面快速发展阶段.这种发展是与时俱进的,与人的需求分不开,因为现在信息时代的高速发展,导致数据量和交易量越来越大.这种现象首先导致的就是存储瓶颈,因为MySQL数据库实质上还是一 ...

  2. 转:三思!大规模MySQL运维陷阱之基于MyCat的伪分布式架构

    在微信公众号看到一篇关于mycat的文章,觉得分析的很不错,给大家分享一下 三思!大规模MySQL运维陷阱之基于MyCat的伪分布式架构 原文链接:https://mp.weixin.qq.com/s ...

  3. Mysql系列五:数据库分库分表中间件mycat的安装和mycat配置详解

    一.mycat的安装 环境准备:准备一台虚拟机192.168.152.128 1. 下载mycat cd /softwarewget http:-linux.tar.gz 2. 解压mycat tar ...

  4. MySQL+MyCat分库分表 读写分离配置

    一. MySQL+MyCat分库分表 1 MyCat简介 java编写的数据库中间件 Mycat运行环境需要JDK. Mycat是中间件.运行在代码应用和MySQL数据库之间的应用. 前身 : cor ...

  5. mysql运维必会的一些知识点整理

    (1)基础笔试命令考察 1.开启MySQL服务 /etc/init.d/mysqld start service mysqld start systemctl start mysqld 2.检测端口是 ...

  6. Mysql系列四:数据库分库分表基础理论

    一.数据处理分类 1. 海量数据处理,按照使用场景主要分为两种类型: 联机事务处理(OLTP) 面向交易的处理系统,其基本特征是原始数据可以立即传送到计算机中心进行处理,并在很短的时间内给出处理结果. ...

  7. mysql运维必会的一些知识点整理(转自民工哥)

    (1)基础笔试命令考察 1.开启MySQL服务 /etc/init.d/mysqld start service mysqld start systemctl start mysqld 2.检测端口是 ...

  8. 搭建稳固的MySQL运维体系

    MySQL 监控要点 MySQL 监控要点,主要涉及服务器和 MySQL 两个方向的监控告警. 在这两个监控告警方向需要重点关注监控策略.监控趋势图及报警方式. 监控策略指的是每个监控项的告警阈值,例 ...

  9. mycat 安装 分表 分库 读写分离

    简单的 理解 一下 mycat :如图 mycat 是一个 连接数据库的中介.一个独立安装的 工具,他连接着真实的数据库,并且 把自己伪装成一个数据库. 程序连接 mycat ,mycat 连接 到真 ...

  10. 美图秀秀DBA谈MySQL运维及优化

    美图秀秀DBA谈MySQL运维及优化 https://mp.weixin.qq.com/s?__biz=MzI4NTA1MDEwNg==&mid=401797597&idx=2& ...

随机推荐

  1. Redis的五大数据类型的数据结构

    概述   Redis底层有六种数据类型包括:简单动态字符串.双向链表.压缩列表.哈希表.跳表和整数数组.这六种数据结构五大数据类型关系如下: String:简单动态字符串 List:双向链表.压缩列表 ...

  2. 程序员视角下的API数据接口对接指南

    ​ 在当今互联网时代,许多应用程序和网站都需要使用第三方的API接口来获取数据.API(Application Programming Interface)允许不同的应用程序之间进行数据交互,从而提高 ...

  3. 解密Prompt系列14. LLM Agent之搜索应用设计:WebGPT & WebGLM & WebCPM

    前两章,我们分别介绍了基于微调和prompt的工具调用方案,核心都是如何让大模型和工具进行交互,包括生成工具调用语句和处理工具调用请求.不过在实际应用中,想要设计一个可以落地的LLM Agent,需要 ...

  4. SpingCloud:Gateway+Nginx+Stomp+Minio构建聊天室并进行文件传输

    注:本人使用阿里云服务器(安装mino)+本地虚拟机(安装nginx)进行,理论上完全在本地进行也可以. 1.前期准备: 1.将本地虚拟机设置为静态ip且能ping通外网,参考网址:https://w ...

  5. Redis漏洞总结--未授权--沙箱绕过--(CNVD-2015-07557)&&(CNVD-2019-21763)&&(CVE-2022-0543)

    Redis未授权--沙箱绕过--(CNVD-2015-07557)&&(CNVD-2019-21763)&&(CVE-2022-0543) 环境复现 采用Vulfocu ...

  6. DBA容灾与备份恢复:闪回应用及实践(一)

    闪回应用及实践 针对主机故障.网络故障.系统软件故障.存储介质故障.人为操作失误等各类故障,可以通过RAC.RMAN.Data Guard等成熟的解决方案来处理,不过对于人为操作失误防范的首推技术还是 ...

  7. CPU占用99%

    晚间迁移数据库后,第二天下午来调优,发现CPU占用达到惊人的99%,如下: 分析15:00-16:00期间AWR报告,发现SQL硬解析严重,如下: 每秒硬解析达到69.9次,library hit%太 ...

  8. 12. 用Rust手把手编写一个wmproxy(代理,内网穿透等), TLS的双向认证信息及token验证

    12. 用Rust手把手编写一个wmproxy(代理,内网穿透等), TLS的双向认证信息及token验证 项目 ++wmproxy++ gite: https://gitee.com/tickbh/ ...

  9. 14.9 Socket 高效文件传输

    网络上的文件传输功能也是很有必要实现一下的,网络传输文件的过程通常分为客户端和服务器端两部分.客户端可以选择上传或下载文件,将文件分块并逐块发送到服务器,或者从服务器分块地接收文件.服务器端接收来自客 ...

  10. 如何在linux(Ubuntu)下安装unity(Unity engine游戏引擎)

    如果直接从unity官网下载unityhub的deb包,直接安装有可能出现unityhub打不开/打开缓慢/无法登陆/无法申请密钥等问题. 正解:从Unity官方源下载unity 1.先添加unity ...