MyCat - 分片 - 分片规则 - 应用指定算法 | 学习笔记

简介: 快速学习 MyCat - 分片 - 分片规则 - 应用指定算法

开发者学堂课程【全面讲解开源数据库中间件MyCat使用及原理(二):MyCat - 分片 - 分片规则 - 应用指定算法】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/756/detail/13272


MyCat - 分片 - 分片规则 - 应用指定算法

内容介绍:

一、应用指定算法

二、测试

 

一、应用指定算法

1.简介

应用指定算法分片指的是在运行阶段由应用程序自主决定当前这条数据路由到哪个分片,直接根据字符子串(必须是数字)继续的分片号,然后再路由到对应的分片。

2.配置如下

<tableRule name =" arding - by - substring ">

< rule >

< columns > ids / columns >

xalgorithm > sharding - by - substring </ algorithm >

</ rule >

</ t ableRule >

< function name =" sharding - by - substring " class =" io . mycat . route . function . PartitionDirectBySubString ">

< property name =" startIndex ">0</ property ><!-- zero - bas ed --> xproperty name =" size ">2</ property >

< property name =" partitionCount ">3</ pr operty >

< property name =" defaultPartition '>0</ property ></ funct ion >

首先是分片规则安照哪个字段进行分片,然后来指定分片法,下面要配置分片结果的处理类,指定 startIndex 起始索引,这个起始索引指的是子字符串的起始索引,从哪个位置开始截取子字符串,size 截取的长度是多长,partitionCount 指的是分片的数量,默认的分片为零,假如在这里插入了一个 ID,它的值是 05-100000002,按照刚才的配置从第一位开始截取,截取长度是两个,截取出来的就是 05,这两位代表的就是他获得的分区号,如果 05 一共有五个分区,他就会存储在这个分区中,如果没有,他会使用默认分区。

 

二、测试

1.配置

<table name =" tb _ app " dataNode ="dn1,dn2,dn3" rule =" sharding - by - substring "/>

首先配置一个逻辑表,在 schema.xml 中进行配置,然后需要进行配置分配规则,分片规则需要使用 sharding - by - substring

<tableRule name =" sharding - by - substring "

xrule >

< columns > id </ columns >

< algorithm > sharding - by - substring </ algorithm ></ rule >

</tab1eRule

还需要分片的函数

< function name =" sharding - by - substring " class =" io . mycat . route . function . PartitionDirectBySubString ">

< property name =" startIndex ">0</ property ><!-- zero - bas ed --> xproperty name =" size ">2</ property >

< property name =" partitionCount ">3</ pr operty >

< property name =" defaultPartition '>0</ property ></ funct ion >

这里面的属性都不用改变,这些属性已经配置好了,还需要重启 my cat,My cat 重启,完成之后,再次重新连接这个 mycat,mycat 重新连接后执行指令 show tables 查看一下里面的表,刚才所设置的表 APP 已经有了。

image.png

接下来需要创建表结构,插入数据

2.数据

CREATE TABLE ‘ tb _ app (

id varchar (10) NOT NULL cOMMENT ‘ ID ',

name varchar (200) DEFAULT NULL cOMMENT ‘名称’,

PRIMARY KEY ( id )

) ENGINE = InnoDB DEFAULT CHARSET = ut f8mb4; I

执行,表结构已经创建好了,接下来再像这张表结构中插入数据

insert into tb _ app ( id , name ) values ('00-00001','Testx00001');

insert into tb _ app ( id , name ) values ('01-00001",'Test100001');

insert into tb _ app ( id , name ) values ('01-00002','Test200001');

insert into tb _ app ( id , name ) values ('02-00001','Test300001');

insert into tb _ app ( id , name ) values ('02-00002','TesT400001');

数据插入进来以后,执行select*from tb_app

image.png

这五条数据都已经有了,接下来需要知道这五条数据到底存储在哪个节点当中,select*from tb_app 第一个中有,select*from tb_app 第二个中也有,select*from tb_app 第三个中也有,在插入数据时,前两位 00,01,01,02,02这些就是指定分片,00 指定第一个分片,01 指定第二个分片,零二指定第三个分片,接下来还想插入一条数据

insert into tb _ app ( id , name ) values ('00-00003','Testx00001');让这条数据在第一个分片中就是 00,接下来再来看第一个分片

image.png

00003 就已经进来了,这就是应用指定分配

相关文章
|
4月前
|
存储 监控 JavaScript
基于布隆过滤器的 Node.js 算法在局域网电脑桌面监控设备快速校验中的应用研究
本文探讨了布隆过滤器在局域网电脑桌面监控中的应用,分析其高效空间利用率、快速查询性能及动态扩容优势,并设计了基于MAC地址的校验模型,提供Node.js实现代码,适用于设备准入控制与重复数据过滤场景。
217 0
|
3月前
|
运维 监控 JavaScript
基于 Node.js 图结构的局域网设备拓扑分析算法在局域网内监控软件中的应用研究
本文探讨图结构在局域网监控系统中的应用,通过Node.js实现设备拓扑建模、路径分析与故障定位,提升网络可视化、可追溯性与运维效率,结合模拟实验验证其高效性与准确性。
260 3
|
3月前
|
机器学习/深度学习 资源调度 算法
遗传算法模型深度解析与实战应用
摘要 遗传算法(GA)作为一种受生物进化启发的优化算法,在复杂问题求解中展现出独特优势。本文系统介绍了GA的核心理论、实现细节和应用经验。算法通过模拟自然选择机制,利用选择、交叉、变异三大操作在解空间中进行全局搜索。与梯度下降等传统方法相比,GA不依赖目标函数的连续性或可微性,特别适合处理离散优化、多目标优化等复杂问题。文中详细阐述了染色体编码、适应度函数设计、遗传操作实现等关键技术,并提供了Python代码实现示例。实践表明,GA的成功应用关键在于平衡探索与开发,通过精心调参维持种群多样性同时确保收敛效率
|
3月前
|
机器学习/深度学习 边缘计算 人工智能
粒子群算法模型深度解析与实战应用
蒋星熠Jaxonic是一位深耕智能优化算法领域多年的技术探索者,专注于粒子群优化(PSO)算法的研究与应用。他深入剖析了PSO的数学模型、核心公式及实现方法,并通过大量实践验证了其在神经网络优化、工程设计等复杂问题上的卓越性能。本文全面展示了PSO的理论基础、改进策略与前沿发展方向,为读者提供了一份详尽的技术指南。
粒子群算法模型深度解析与实战应用
|
3月前
|
机器学习/深度学习 算法 安全
小场景大市场:猫狗识别算法在宠物智能设备中的应用
将猫狗识别算法应用于宠物智能设备,是AIoT领域的重要垂直场景。本文从核心技术、应用场景、挑战与趋势四个方面,全面解析这一融合算法、硬件与用户体验的系统工程。
|
5月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习模型、算法与应用的全方位解析
深度学习,作为人工智能(AI)的一个重要分支,已经在多个领域产生了革命性的影响。从图像识别到自然语言处理,从语音识别到自动驾驶,深度学习无处不在。本篇博客将深入探讨深度学习的模型、算法及其在各个领域的应用。
1054 3
|
5月前
|
机器学习/深度学习 人工智能 算法
AI-Compass 强化学习模块:理论到实战完整RL技术生态,涵盖10+主流框架、多智能体算法、游戏AI与金融量化应用
AI-Compass 强化学习模块:理论到实战完整RL技术生态,涵盖10+主流框架、多智能体算法、游戏AI与金融量化应用
|
5月前
|
存储 监控 安全
企业上网监控系统中红黑树数据结构的 Python 算法实现与应用研究
企业上网监控系统需高效处理海量数据,传统数据结构存在性能瓶颈。红黑树通过自平衡机制,确保查找、插入、删除操作的时间复杂度稳定在 O(log n),适用于网络记录存储、设备信息维护及安全事件排序等场景。本文分析红黑树的理论基础、应用场景及 Python 实现,并探讨其在企业监控系统中的实践价值,提升系统性能与稳定性。
176 1
|
4月前
|
算法 数据可视化
matlab版本粒子群算法(PSO)在路径规划中的应用
matlab版本粒子群算法(PSO)在路径规划中的应用
|
5月前
|
存储 监控 算法
公司员工泄密防护体系中跳表数据结构及其 Go 语言算法的应用研究
在数字化办公中,企业面临员工泄密风险。本文探讨使用跳表(Skip List)数据结构优化泄密防护系统,提升敏感数据监测效率。跳表以其高效的动态数据处理能力,为企业信息安全管理提供了可靠技术支持。
144 0

热门文章

最新文章