MyCat分片规则

MyCat多重规则哈希分片 MyCat分片规则MyCat自带的分片规则有很多种,而且支持自定义分片规则,灰常好用啊 阅读详情

一、分片枚举

本条规则通过在配置文件中配置的枚举进行分片

rule.xml

<tableRule name="sharding-by-intfile">
    <rule>
        <!-- 标识将要分片的表字段 -->
        <columns>user_id</columns>
        <!-- 分片函数 -->
        <algorithm>hash-int</algorithm>
    </rule>
</tableRule>
<function name="hash-int" class="io.mycat.route.function.PartitionByFileMap">
    <!-- 配置文件名 -->
    <property name="mapFile">partition-hash-int.txt</property>
    <!-- 0表示Integer,1表示String -->
    <property name="type">0</property>
    <!-- 默认节点 如果不配置默认节点,碰到不识别的枚举值会报错 -->
    <property name="defaultNode">0</property>
</function>

partition-hash-int.txt

10000=0
10010=1
# 所有节点配置是从0开始,即0代表节点1

用法:

字段user_id为10000进入节点1,字段user_id为10010进入节点2

二、固定分片hash算法

本条规则类似于十进制的求模运算,区别在于是二进制的操作,是取 id 的二进制低 10 位,即 id 二进制&1111111111

rule.xml

<tableRule name="rule1">
    <rule>
        <columns>user_id</columns>
        <algorithm>func1</algorithm>
    </rule>
</tableRule>
<function name="func1" class="io.mycat.route.function.PartitionByLong">
    <!-- partitionCount 分片个数列表 -->
    <property name="partitionCount">2,1</property>
    <!-- partitionLength 分片范围列表 -->
    <property name="partitionLength">256,512</property>
    <!-- count,length 两个数组长度必须一致 -->
    <!-- 1024 = sum((count[i]*length[i])). count 和 length 两个向量的点积恒等于 1024 -->
</function>

用法:

本例的分区策略:希望将数据水平分成 3 份,前两份各占 25%,第三份占 50%。(故本例非均匀分区)
// |<———————1024———————————>|
// |<—-256—>|<—-256—>|<———-512————->|
// | partition0 | partition1 | partition2 |
// | 共 2 份,故 count[0]=2 | 共 1 份,故 count[1]=1 |
如果需要平均分配设置:平均分为 4 分片,partitionCount*partitionLength=1024
<function name="func1" class="io.mycat.route.function.PartitionByLong">
    <property name="partitionCount">4</property>
    <property name="partitionLength">256</property>
</function>

三、范围约定

此分片适用于,提前规划好分片字段某个范围属于哪个分片

rule.xml

<tableRule name="auto-sharding-long">
    <rule>
        <columns>user_id</columns>
        <algorithm>rang-long</algorithm>
    </rule>
</tableRule>
<function name="rang-long" class="io.mycat.route.function.AutoPartitionByLong">
    <property name="mapFile">autopartition-long.txt</property>
    <property name="defaultNode">0</property>
</function>

autopartition-long.txt

# K=1000,M=10000
0-500M=0
500M-1000M=1
1000M-1500M=2

用法:

字段user_id为0-5000000进入节点1,以此类推

四、取模

此规则为对分片字段求摸运算

此种配置非常明确即根据 id 进行十进制求模预算,相比固定分片 hash,此种在批量插入时可能存在批量插入单
事务插入多数据分片,增大事务一致性难度

<tableRule name="mod-long">
    <rule>
        <columns>user_id</columns>
        <algorithm>mod-long</algorithm>
    </rule>
</tableRule>
<function name="mod-long" class="io.mycat.route.function.PartitionByMod">
    <!-- how many data nodes -->
    <property name="count">3</property>
</function>

以此类推。。。

未完待续。。。

mycat-04-常用分片规则 常用分片规则 取模 此规则为对分片字段求摸运算。 也是水平分表最常用规则。 前文orders表采用了此规则。 分片枚举 通过在配置文件中配置可能的枚举 id,自己配置分片,本规则适用于特定的场景, 比如有些业务需要按照省份或区县来做保存,而全国省份区县固定的,这类业务使用本条规则。 创建数据库、表 在vm1,vm4上创建orders_ware_info, CREATE TABLE orders_ware_info ( `id` INT AUTO_INCREMENT comment '编号', `order_ 阅读详情

相关推荐

mycat 常用分片规则使用详解

mycat 常用分片规则使用

congge 4771

【mycat】常用分片规则

​ 此规则为对分片字段求摸运算。也是水平分表最常用规则。

qq_60969145的博客 833

详解-mycat分片

详细介绍mycat分片的相关分片规则,包括枚举法、固定分片hash算法、范围约定算法、求模法、日期列分区法、通配取模等

Mycat--理论--03--Mycat分片规则概述

提前规划好分片字段某个范围属于哪个分片 6.2、按日期(天)分片 从开始日期算起,按照天数来分片,例如,从2021-01-01,每10天一个分片 注意事项: 需要提前将分片规划好,建好,否则有可能日期超出实际配置分片数 6.3、按单月小时分片 最小粒度是小时,可以一天最多24个分片,最少1个分片,一个月完后下月从头开始循环。 注意事项: 每个月月尾,需要手工清理数据。 6.4、自然月分片 每个自然月一个分片 注意事项:需要提前将分片数规划好,建好,否则有可能日期超出实际配置分片数

zhou920786312的博客 1202

【ROS2】MOMO的鱼香ROS2(三)ROS2入门篇——ROS2第一个节点

【ROS2】MOMO的鱼香ROS2(三)ROS2入门篇——ROS2第一个节点

qq_44703886的博客 3613

手把手教你用GD32F407VET6的EXMC驱动外部SRAM,搞定大内存需求

本文详细介绍了如何使用GD32F407VET6的EXMC外设驱动外部SRAM,解决嵌入式开发中的大内存需求问题。通过硬件连接方案、EXMC时序配置与初始化步骤,以及软件集成与内存管理技巧,帮助开发者快速实现内存扩展。特别适合需要处理图形显示缓冲、音频处理等大内存场景的GD32F407开发者。

weixin_30752699的博客 346

Mycat系列—常用的分片规则

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

此博客已停用,博文会逐渐转移到新地址,http://blog.youkuaiyun.com/liupeifeng3514 5220

逆向小记 bd-ticket-guard-client-cert | bd-ticket-guard-client-data 通过现象看本质

依然没什么花哨的直接解析出来,既然这是个X509证书,那么要么是服务器下发,要么是自己生成喽,但是如果是本地直接生成,那服务器还校验个鬼哦!既然是服务器下发的,那服务器又是怎么校验这个证书是自己下发的呢,这就要讲到CA验证了,首先根据上图我们发现证书的Issuer"(颁发者)是。怎么来的呢,因为涉及到逆向咱就不讲了,其实也是涉及到非对称加密的,就是客户端用私钥去签名数据,服务器用上传过去的证书公钥验签的过程!当服务器收到这个证书的时候,会做几件事,首先用自己的公钥解开签名获得解密后的证书hash。

2503_90751789的博客 1205

Mycat--分片规则

其他网址 Mycat分片规则详解 - 小小小小小小鱼 - 博客园 另见:《Mycat权威指南》=> 入门篇=>10.5 Mycat 常用的分片规则 1、分片枚举 通过在配置文件中配置可能的枚举 id,自己配置分片,本规则适用于特定的场景,比如有些业务需要按照省份或区县来做保存,而全国省份区县固定的,这类业务使用本条规则,配置如下: <tableRul...

IT利刃出鞘的博客 955

实验7:机器学习油田产量预测-代码数据-完整代码数据可直接运行-计算机毕设

实验7:机器学习油田产量预测-代码数据-完整代码数据可直接运行-计算机毕设

机器学习深度学习业余选手 478

PCL 点云按强度渲染颜色【2025最新版】

点云按反射强度渲染颜色,博客长期更新,本文最近更新时间为:2025年1月6日。

点云侠的博客 2万+

Mycat分片规则介绍

配置介绍 rule.xml 的 tableRule 标签配置表的分片规则如下: <tableRule name="rule"> <rule> <columns>id</columns> <algorithm>rule1</algorithm> </rule> </tableRule> name指定分片规则名字,唯一性; columns指定用于分片的mysql实体表的字段, algorithm指定使用

养歌的博客 1299

php环境如何实现国密SM2相关功能

🏆本文收录于《优快云问答解惑-专业版》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!

**My Coding Family** 1615

mycat分片及分片规则

mycat分片一、垂直拆分1.1 准备工作1.2 插入表二、水平拆分 一、垂直拆分 按照不同的表(或者Schema)来切分到不同的数据库(主机)之上,这种切分可以称之为数据的垂直(纵向)切分。 1.1 准备工作 1).准备三个数据库实例,这里我用docker启动了三个容器 192.168.1.178:3306 192.168.1.178:3307 192.168.1.178:3308 2).准备一个mycat,这里我用的1.6 1.2 插入表 3306节点: CREATE DATABASE IF NOT E

weixin_44032502的博客 1281

基于STM32的智慧农业大棚监测与控制系统设计与实现

摘要:本文设计了一种基于STM32F103C8T6单片机的智慧农业大棚监测与控制系统,集成多参数环境监测、智能控制和远程管理功能。系统可实时采集光照、CO2、温湿度和土壤湿度等参数,通过OLED显示并采用双模式控制机制:自动模式下根据阈值调节设备,手动模式下支持APP或按键控制。通过ESP8266模块接入机智云平台实现数据云存储和远程控制。测试表明系统具有高精度(温度±0.5℃、CO2±50ppm)、快速响应(<2s)和稳定运行(30天无故障)等特点,有效解决了传统大棚调控不及时等问题。创新点包括多参

3254968421的博客 484

【网络与爬虫 62】小程序爬虫终极攻略:微信支付宝小程序数据采集完全指南

本文深入解析微信和支付宝小程序的爬虫技术,从基础架构分析到高级逆向工程,涵盖WXML/AXML模板解析、API接口拦截、网络流量分析等核心技术。通过实战案例和代码示例,帮助开发者掌握小程序数据采集的完整技术栈。

熵数实验室 3415

MyCAT常用分片规则之分片枚举

MyCAT支持多种分片规则,下面测试的这种是分片枚举。适用场景,列值的个数是固定的,譬如省份,月份等。在这里,需定义三个值,规则均是在rule.xml中定义。1. tableRule2. function3. mapFile首先,定义tableRule, &lt;tableRule name="sharding-by-intfile-test"&gt; &lt;...

周大侠的博客 401

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

mycat --分片规则--

分片规则算法类型特点适用场景rule1自定义灵活特殊业务需求日期按天分片时间序列数据rule2自定义按用户分片用户数据隔离枚举固定映射分类明确数据范围范围查询高效连续IDmod-long取模均匀分布均匀分布需求哈希高性能哈希高效哈希需求crc32slot哈希快速计算快速哈希需求日期按月分片月度统计冷热热点分离近期数据处理混合范围+哈希大数据量灵活扩容jch一致性哈希扩容友好频繁扩容场景。

2401_88076102的博客 1090

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

mycat 的分片规则

mycat的分片规则有十几种方式,比如在上面几篇文章中使用的取模mod-long分片法, 1.取模mod-long分片法 即根据id进行十进制求模预算。分片列的值 % 分片数量 = 对应分片的数据库。 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mycat:rule SYSTEM "rule.dtd"> <...

java_chegnxuyuan的博客 256

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

【Mycat】分片规则详解

分片表和非分片表 Mycat位于应用和数据库的中间层,可以理解为数据库的代理。 不是所有的表都需要分片,数据量小并且不需要做水平切分的表称之为非分片表;数据量大到单库性能、容量不足以支撑,数据需要通过水平切分到不同数据库中的表称之为分片表。 ER关系分片表 ER模型是实体关系模型,广泛采用概念模型设计方法,基本元素是实体、关系和属性。Mycat创新性地将它引入数据切分规则中,使得有互相依赖的...

非正常人研究室 1057

4、MyCat分片规则

什么是MyCat的分片规则?使用了MyCat之后,我们所有的数据库操作都是针对MyCat,增删改查都是针对MyCat进行操作,MyCat会将我们的SQL语句进行分析,分析之后,会根据提前配置好的规则将SQL转发到对应的MyCat上面执行,这个提前定义好的规则,就叫做分片规则。 1、global 有一些表,数据量不大,也不怎么修改,主要是查询操作,例如系统配置表,这一类表我们可以使用global分片...

weixin_44868863的博客 1105

mycat的10种分片规则

mycat的10种分片规则 1)枚举法:sharding-by-intfile 2)固定分片:rule 1 3)范围约定:auto-sharding-long 4)求模法:mod-long 5)日期列分区法:sharding-by-date 6)通配取模:sharding-by-pattern 7)ASCII码取模:sharding-by-prefixpattern 8)编程指定:sharding-by-substring 9)字符串拆分hash解析:sharding-by-stringhash 10)一

攻城专栏 1220

mycat分片规则详解+实例演示

mycat分片规则1、环境准备 :2、分片规则2.1 取模分片2.2 范围分片2.3 枚举分片2.4 范围求模算法2.5 固定分片hash算法2.6 取模范围算法2.7 字符串hash求模范围算法2.8 应用指定算法2.9 字符串hash解析算法2.10 一致性hash算法2.11 日期分片算法2.12 单月小时算法2.13 自然月分片算法2.14 日期范围hash算法 MyCat的分片规则配置在conf目录下的rule.xml文件中定义 ; 1、环境准备 : 1). schema.xml中的内容做好备份

冲出仁川,走出马德里,故事还会再继续 2348
上一篇: Docker percona-xtradb-cluster(pxc)+HAProxy+MyCat (三)
下一篇: 过滤器和拦截器
cashZhang27
博客等级 码龄10年 22粉丝 67原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值