MYCAT10种常见分片规则之一 ---PartitionByLong(求模)

Mycat分片函数详解 Mycat的分片函数的的目标只有一个:根据某个字段的值,返回其所对应的分片节点DataNode的index,index从零开始;若字段的值为非法,则返回NULL。 阅读详情

MYCAT10种常见分片规则之一 —PartitionByLong(求模)

一、PartitionByLong

转载:https://www.jianshu.com/p/7a112909b963?appinstall=0

这是先求模得到逻辑分片号,再根据逻辑分片号直接映射到物理分片的一种散列算法。
在这里插入图片描述

  1. 用户需要在rule.xml中定义partitionLength[]和partitionCount[]两个数组
  2. 在DBLE的启动阶段,点乘这两个数组得到模数,也是逻辑分片的数量
  3. 并且根据两个数组的叉乘,得到各个逻辑分片到物理分片的映射表(物理分片数量由partitionCount[]数组的元素值之和)
  4. 在DBLE的运行过程中,用户访问使用这个算法的表时,WHERE子句中的分片索引值会被提取出来进行求模,得到逻辑分片号
  5. 再根据逻辑分片号,查映射表,直接得到物理分片号

开发注意点

【分片索引】1,必须是整型数字或整型数字的字符串(可以为负数)
【分片索引】2,最大物理分片配置方法是,让partitionCount[]数组和等于2880,例如“12880”或“1,11440,1440”
【分片索引】3,最小物理分片配置方法是,让partitionCount[]数组和等于1,例如“28801”
【分片索引】4,partitionLength和partitionCount被当做两个逗号分隔的一维数组,它们之间的点乘必须在[1, 2880]范围内
【分片索引】5,partitionLength和partitionCount的配置对顺序敏感,“512,2561,2”和“256,5122,1”是不同的分片结果
【数据分布】1,与分片索引值相关而与INSERT先后无相关性,所以在直接使用时无法保证数据分布均匀,但如果分片索引本身连续递增(交易流水号等),则可以期待数据分布较为平均(但副作用会导致范围语句,例如SELECT … WHERE shard_key BETWEEN 1 AND 100,变成跨分片查询)

运维注意点

【扩容】1,预先过量分片,并且不改变partitionCount和partitionLength点乘结果,可以避免数据再平衡,只需进行涉及数据的迁移
【扩容】2,若需要改变partitionCount和partitionLength点乘结果,需要数据再平衡
【缩容】1,预先过量分片,并且不改变partitionCount和partitionLength点乘结果,可以避免数据再平衡,只需进行涉及数据的迁移
【缩容】2,若需要改变partitionCount和partitionLength点乘结果,需要数据再平衡

配置注意点

【配置项】1,在rule.xml中,可配置项为和
【配置项】2,在rule.xml中配置标签,内容形式为“<物理分片持有的虚拟分片数>[,<物理分片持有的虚拟分片数>,…<物理分片持有的虚拟分片数>]”,<物理分片持有的虚拟分片数>必须是整型,<物理分片持有的虚拟分片数>从左到右与同顺序的<物理分片数>对应,partitionLength和partitionCount的点乘结果必须在[1, 2880]范围内
【配置项】3,在rule.xml中配置标签,内容形式为“<物理分片数>[,<物理分片数>,…<物理分片数>]”,其中<物理分片数>必须是整型,<物理分片数>按从左到右的顺序与同顺序的<物理分片持有的虚拟分片数>对应,物理分片的编号从左到右连续递进,partitionLength和partitionCount的点乘结果必须在[1, 2880]范围内
【配置项】4,partitionLength和partitionCount的语义是:持有partitionLength[i]个虚拟分片的物理分片有partitionCount[i]个,例如,“512,2561,2”的语义是“持有512个逻辑分片的物理分片有1个,紧随其后,持有256个逻辑分片的物理分片有2个”
【配置项】5,partitionLength和partitionCount都对书写顺序敏感,例如,“512,2561,2”的分片结果是“第一个物理分片持有头512个逻辑分片,第二个物理分片持有紧接着的256个逻辑分片,第三个物理分片持有最后256个逻辑分片”,相对的,“256,5122,1”的分片结果则是“第一个物理分片持有头256个逻辑分片,第二个物理分片持有紧接着的256个逻辑分片,第三个物理分片持有最后512个逻辑分片”
【配置项】6,partitionLength[]的元素全部为1时,这时候partitionCount数组和等于partitionLength和partitionCount的点乘,物理分片和逻辑分片就会一一对应,该分片算法等效于直接取余。

【2025年五一数学建模竞赛】A题 完整论文 模型建立与求解 2025年五一数学建模竞赛 A题:基于历史数据与模式识别的道路车流量推测模型研究 阅读详情

相关推荐

电力现货市场出清机制解析:从理论到实践(附节点电价计算实例)

本文深入解析电力现货市场的核心出清机制,重点阐述了节点边际电价的计算原理与实践方法。通过对比系统边际电价、节点边际电价和分区边际电价三种模式,揭示了市场出清价格如何反映电力供需与网络阻塞。文章结合IEEE 30节点系统,提供了基于MATLAB和最优潮流模型的计算实例,详细展示了从构建模型到求解对偶变量以获取节点电价的全过程,为理解电力市场定价机制提供了从理论到实践的完整路径。

whisky的博客 757

Mycat 分片算法 AutoPartitionByLong

关于分片算法 AutoPartitionByLong,rule.xml 的配置为: &lt;function name="rang-long" class="io.mycat.route.function.AutoPartitionByLong"&gt; &lt;property name="mapFile"&gt;autopartition-long.txt&lt;/property...

wwangchenyu的专栏 1241

Chapter2、HDR流水线

HDR内容的获取(不同曝光时间的图片合成) 相机响应函数 HDR视频

qq_55621259的博客 2597

Mycat 分片规则---不以规矩,不能成方圆

分片规则概述在数据切分处理中,特别是水平切分中,中间件最终要的两个处理过程就是数据的切分、数据的聚合。选择合适的切分规则,至关重要,因为它决定了后续数据聚合的难易程度,甚至可以避免跨库的数据聚合处理。 前面讲了数据切分中重要的几条原则,其中有几条是数据冗余,表分组(Table Group),这都是业务上规避跨库join的很好的方式,但不是所有的业务场景都适合这样的规则,因此本章将讲述如何选择合适的

wangshuang1631的博客 7328

sentinel——SLC数据下载、DEM数据下载拼接、精密轨道数据下载方法

Sentinel——SLC数据下载、DEM数据下载、精密轨道数据下载方法 SLC数据下载 网址:https://search.asf.alaska.edu DEM数据下载 1 手动下载 http://srtm.csi.cgiar.org/srtmdata/ 3.在SARscape中使用下载好的DEM 将下载好的DEM放在软件默认下载DEM路径下(默认路径是C:\Users<用户名&g...

u011322358的博客 2万+

从零实战:模拟Soul/陌陌附近的人接口爬虫(设备指纹·加密逆向·动态代理全解)

在移动互联网流量见顶的今天,LBS(基于位置的服务)社交平台——尤其是Soul和陌陌——依然掌握着海量高活用户的地理位置画像、兴趣标签、在线活跃时段等敏感数据。对于市场调研、流量运营、甚至是城市热力分析而言,“附近的人”接口是一个极具价值的入口。然而,这两款App均采用全参数加密 + 设备指纹风控 + WAF动态防御的三重护城河。直接使用Requests库调用公开API无异于以卵击石。本文将从逆向工程视角出发,完整还原一套可用的附近人信息采集方案,涵盖:抓包与流量分析(绕过SSL Pinning)

2201_76125261的博客 211

Oracle数据库LONG类型字段的完整C代码操作(CREATE INSERT SELECT DROP)之五--分段轮询INSERT

本次将完成LONG类型字段的 分段的、轮询 INSERT操作。 一、本次目标 每次插入1片,这里设1片为1000个字符(即PIECE_SIZE = 1000),共想插入5000个字符(即DATA_SIZE = 5000),则将插入5次(即NPIECE = DATA_SIZE/PIECE_SIZE = 5000/1000 = 5)。 通俗一句话说明目标:分5次循环向表CAT_1中插入一行数据(2,‘AAA...(共计5000个A)...AAA’) 附: 建表语句:CREATE TABLE CAT_1

have_a_cat的博客 913

G.6 PaddleHub实战篇{ERNIE实现文新闻本分类、ERNIE3.0 实现序列标注}【四】

百度飞桨:ERNIE 3.0 、通用信息抽取 UIE、paddleNLP的安装使用[一]_汀、的博客-优快云博客PaddleHub--飞桨预训练模型应用工具{风格迁移模型、词法分析情感分析、Fine-tune API微调}【一】_汀、的博客-优快云博客 PaddleHub--{超参优化AutoDL Finetuner}【二】_汀、的博客-优快云博客PaddleHub实战篇{词法分析模型LAC、情感分类ERNIE Tiny}训练、部署【三】_汀、的博客-优快云博客通过前面几篇文章大家都有一定了解,下面

丨汀、的博客 6186

Mycat分库分表

Mycat分库分表

qq_27685683的博客 643

S7-200SMART 的运动控制(一)向导配置具体步骤(图文)

S7-200SMART 的运动控制(一)向导配置具体步骤(图文)

Robot_PLC_HMI_Automation 3850

Kong API Gateway 配置与深入

Kong是一个开源的、高性能的API网关,提供了一种简单易用的服务间路由、流量管理和安全防护方案,其最初起源于Nginx Inc.,但后迁移至Apache Software Foundation。Kong支持RESTful、GraphQL、TCP/UDP等协议,可与AWS Lambda、Azure Functions、Google Cloud Functions等云函数平台集成。其主要功能包括:服务发现与负载均衡、请求代理、身份认证与授权、缓存、日志记录、监控指标、灰度发布、多种插件等。

AI天才研究院 2284

Mycat水平拆分之十种分片规则

水平切分分片实现   配置schema.xml  在同一个mysql数据库中,创建了三个数据库 testdb1,testdb2,testdb3。并在每个库中都创建了user表          testdb" checkSQLschema="false" sqlMaxLimit="100”  >                                 

da sheng 的专栏 5235

【Neo4j × Python】基于知识图谱的电影问答系统(含问题记录与解决)附:源代码(含Bug解决)

此前,曾介绍过Neo4j的一些基础知识,本篇将在PyCharm中与Neo4j建立关联,从0到1实现一个基于知识图谱的电影问答系统,实现过程中,没有一帆风顺,而是遇到了一些问题,因此也包含问题的记录与解决。

追光者♂:记录、分享、总结、提升,现象级专栏《Python从入门到人工智能》作者,无惧黑暗,坚信曙光 3166

MyCat分片规则

一、分片枚举 本条规则通过在配置文件中配置的枚举进行分片 rule.xml <tableRule name="sharding-by-intfile"> <rule> <!-- 标识将要分片的表字段 --> <columns>user_id</columns> <!--...

Cash Blog 356

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

mycat分片和mysql的分区_数据库水平切分(MyCat分片)

范围分片io.mycat.route.function.AutoPartitionByLong 自动范围分片Function名称:rang-long(配置文件默认)枚举分片io.mycat.route.function.PartitionByFileMap 枚举分片Funtion名称:hash-int(配置文件默认)默认分片defaultNodepartition-hash-int.txt0Myc...

weixin_36254564的博客 276

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Mycat常用的分片规则

Mycat常用的分片规则。为方便查看,从《Mycat权威指南》上摘录下来,以便以后查阅

向柚看_ 2583

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Mycat分片规则

分片枚举 通过在配置文件中配置可能的枚举id,自己配置分片,本规则适用于特定的场景,比如有些业务需要按照省 份或区县来做保存,而全国省份区县固定的,这类业务使用本条规则,配置如下: &lt;tableRule name="sharding-by-intfile"&gt; &lt;rule&gt; &lt;columns&gt;sharding_id&lt;/columns&gt;...

qq_36640507的博客 591

MyCat固定分片hash算法

本条规则是取id的二进制低10位(id二进制&1111111111) 此算法的优点在于如果按照10进制取模运算,在连续插入1-10时候1-10会被分到1-10个分片,增大了插入的事务控制难度, 而此算法根据二进制则可能会分到连续的分片,减少插入事务控制难度。 <tableRule name="rule1"> <rule> <columns>user_...

weixin_42130892的博客 1345

数据库水平切分(MyCat分片)

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33910137的博客 308

【Mycat 1.6之TableRule分片规则介绍】

1、TableRule介绍 1)schema.xml文件 &lt;!-- 配置逻辑数据库名字,以及配置需要分片的表,也可以配置字典全局表或者不分片的表,总之你要纳入mycat管理的表就要在此配置 --&gt; &lt;schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100"&gt; &lt;!-- auto shardi...

860

Mycat探索之旅(5)----常用的分片规则

分片枚举 通过在配置文件中配置可能的枚举id,自己配置分片,本规则适用于特定的场景,比如有些业务需要按照省份或区县来做保存, 而全国省份区县固定的,这类业务使用本条规则,配置如下: <tableRule name="sharding-by-intfile"> <rule> <!--标识将要分片的表字段--> <columns&...

dongbei1970的博客 202

mycat 10 分钟轻松入门

点击上方好好学java,选择星标公众号重磅资讯、干货,第一时间送达 今日推荐:分享一个牛逼的 Java 开源后台管理系统,不要造轮子了!个人原创+1博客:点击前往,查看更多 ...

好好学java 352

Mycat--实践--09--分片--范围约定

Mycat–实践–09–分片–范围约定 1、介绍 1.1、配置说明 <tableRule name="auto-sharding-long"> <rule> <columns>id</columns> <algorithm>rang-long</algorithm> </rule> </tableRule> <function name="rang-long" class="io.myca

zhou920786312的博客 278

MyCat分片规则--笔记(二)

概述 myCat实现分库分表的策略,对数据量的处理带来很大的便利,这里主要整理下MyCat的使用以及常用路由算法,针对MyCat里面的事务、集群后续再做整理;另外内容整理,不免会参考技术大牛的博客,内容雷同,实属正常;基于业务区分数据源,主要为了实现如下的数据库 常规使用 配置schema.xml在同一个mysql数据库中,创建了三个数据库 testdb1,testdb2,...

weixin_30396699的博客 91

Linux的Mycat安装和基本使用

Linux的Mycat安装和基本使用 前期准备 1.Linux的JDK安装 地址:https://www.oracle.com/java/technologies/javase-jdk8-downloads.html 将下载好后的压缩包上传至linux系统,我放置在了/opt/apps目录下 将压缩包进行解压, tar zxvf ./jdk-8u144-linux-x64.tar.gz -C ...

weixin_35211612的博客 406

007Mycat水平拆分之十种分片规则

水平切分分片实现 配置schema.xml  在同一个mysql数据库中,创建了三个数据库 testdb1,testdb2,testdb3。并在每个库中都创建了user表  &lt;?xml version="1.0"?&gt;&lt;!DOCTYPE mycat:schema SYSTEM "schema.dtd"&gt;&lt;mycat:schema xmlns:mycat="http://...

Idonng的专栏 180
上一篇: LINUX环境下weblogic调用awt包画图卡住不运行的解决方案(二)
下一篇: MYCAT10种常见分片规则之二 --- PartitionByFileMap(枚举分片)
hello_delphi
博客等级 码龄22年 7粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值