mycat --分片规则--
文章目录
- MyCat分片规则详解
- 1. rule1 (基于id的func1算法)
- 2. sharding-by-date (按日期分片)
- 3. rule2 (基于user_id的func1算法)
- 4. sharding-by-intfile (基于枚举值分片)
- 5. auto-sharding-long (长整型范围分片)
- 6. mod-long (取模分片)
- 7. sharding-by-murmur (MurmurHash分片)
- 8. crc32slot (CRC32分片)
- 9. sharding-by-month (按月分片)
- 10. latest-month-calldate (最近月份分片)
- 11. auto-sharding-rang-mod (范围+取模分片)
- 12. jch (Jump Consistent Hash分片)
- 总结对比表
MyCat分片规则详解
下面我将详细解释您列出的这些MyCat分片规则的工作原理和适用场景:
1. rule1 (基于id的func1算法)
<tableRule name="rule1"><rule><columns>id</columns><algorithm>func1</algorithm></rule>
</tableRule>
- 规则:使用自定义函数func1对id列进行分片
- 特点:需要查看func1的具体实现才能确定分片逻辑
- 适用场景:需要特殊分片逻辑的业务场景
2. sharding-by-date (按日期分片)
<tableRule name="sharding-by-date"><rule><columns>createTime</columns><algorithm>partbyday</algorithm></rule>
</tableRule>
- 规则:按createTime字段的日期(天)进行分片
- 特点:
- 每天的数据存储在同一分片
- 便于按时间范围查询
- 适用场景:日志、订单等时间序列数据
3. rule2 (基于user_id的func1算法)
<tableRule name="rule2"><rule><columns>user_id</columns><algorithm>func1</algorithm></rule>
</tableRule>
- 规则:使用与rule1相同的func1算法,但针对user_id列
- 特点:同一用户的数据会分配到固定分片
- 适用场景:需要按用户ID分片的业务
4. sharding-by-intfile (基于枚举值分片)
<tableRule name="sharding-by-intfile"><rule><columns>sharding_id</columns><algorithm>hash-int</algorithm></rule>
</tableRule>
- 规则:根据sharding_id的枚举值映射到不同分片
- 特点:
- 需要配置分片映射文件
- 分片规则明确且固定
- 适用场景:数据有明确分类的场景,如按地区、业务线分片
5. auto-sharding-long (长整型范围分片)
<tableRule name="auto-sharding-long"><rule><columns>id</columns><algorithm>rang-long</algorithm></rule>
</tableRule>
- 规则:按照id的数值范围进行分片
- 特点:
- 需要预先定义范围规则
- 范围查询效率高
- 适用场景:ID是连续增长的数字,如自增主键
6. mod-long (取模分片)
<tableRule name="mod-long"><rule><columns>id</columns><algorithm>mod-long</algorithm></rule>
</tableRule>
- 规则:对id值进行取模运算,根据结果分配到不同分片
- 特点:
- 数据分布均匀
- 扩容时需要数据迁移
- 适用场景:需要均匀分布数据的场景
7. sharding-by-murmur (MurmurHash分片)
<tableRule name="sharding-by-murmur"><rule><columns>id</columns><algorithm>murmur</algorithm></rule>
</tableRule>
- 规则:使用MurmurHash算法对id进行哈希分片
- 特点:
- 哈希分布均匀
- 比传统哈希算法性能更好
- 适用场景:需要均匀分布且高效的哈希分片
8. crc32slot (CRC32分片)
<tableRule name="crc32slot"><rule><columns>id</columns><algorithm>crc32slot</algorithm></rule>
</tableRule>
- 规则:使用CRC32算法对id进行哈希分片
- 特点:
- 计算速度快
- 分布相对均匀
- 适用场景:需要快速哈希计算的场景
9. sharding-by-month (按月分片)
<tableRule name="sharding-by-month"><rule><columns>create_time</columns><algorithm>partbymonth</algorithm></rule>
</tableRule>
- 规则:按create_time字段的月份进行分片
- 特点:
- 每月数据存储在同一分片
- 便于按月归档
- 适用场景:需要按月统计或归档的数据
10. latest-month-calldate (最近月份分片)
<tableRule name="latest-month-calldate"><rule><columns>calldate</columns><algorithm>latestMonth</algorithm></rule>
</tableRule>
- 规则:最近一个月的数据单独分片,历史数据按其他规则分片
- 特点:
- 热点数据单独处理
- 冷热数据分离
- 适用场景:需要特别处理最近数据的业务,如通话记录
11. auto-sharding-rang-mod (范围+取模分片)
<tableRule name="auto-sharding-rang-mod"><rule><columns>id</columns><algorithm>rang-mod</algorithm></rule>
</tableRule>
- 规则:先按范围分片,范围内再按取模分片
- 特点:
- 结合范围和哈希优点
- 便于扩容
- 适用场景:大数据量且需要灵活扩容的场景
12. jch (Jump Consistent Hash分片)
<tableRule name="jch"><rule><columns>id</columns><algorithm>jump-consistent-hash</algorithm></rule>
</tableRule>
- 规则:使用Jump Consistent Hash算法进行分片
- 特点:
- 扩容时数据迁移量少
- 不需要维护哈希环
- 适用场景:需要频繁扩容缩容的场景
总结对比表
分片规则 | 算法类型 | 特点 | 适用场景 |
---|---|---|---|
rule1 | 自定义 | 灵活 | 特殊业务需求 |
sharding-by-date | 日期 | 按天分片 | 时间序列数据 |
rule2 | 自定义 | 按用户分片 | 用户数据隔离 |
sharding-by-intfile | 枚举 | 固定映射 | 分类明确数据 |
auto-sharding-long | 范围 | 范围查询高效 | 连续ID |
mod-long | 取模 | 均匀分布 | 均匀分布需求 |
sharding-by-murmur | 哈希 | 高性能哈希 | 高效哈希需求 |
crc32slot | 哈希 | 快速计算 | 快速哈希需求 |
sharding-by-month | 日期 | 按月分片 | 月度统计 |
latest-month-calldate | 冷热 | 热点分离 | 近期数据处理 |
auto-sharding-rang-mod | 混合 | 范围+哈希 | 大数据量灵活扩容 |
jch | 一致性哈希 | 扩容友好 | 频繁扩容场景 |
相关文章:
mycat --分片规则--
文章目录 MyCat分片规则详解1. rule1 (基于id的func1算法)2. sharding-by-date (按日期分片)3. rule2 (基于user_id的func1算法)4. sharding-by-intfile (基于枚举值分片)5. auto-sharding-long (长整型范围分片)6. mod-long (取模分片)7. sharding-by-murmur (MurmurHash分片)…...
系统分析师备考启动
以考促学:软件高级系统分析师。 一、考试目的: 1、练习三遍读书法、快速阅读、番茄工作法、第一性原理、思维导图等学习方法和学习工具的使用。 2、掌握知识、编织知识网、顺便拿证。 二、组织形式: 小组统一安排学习内容,每…...
轻量级搜索接口技术解析:快速实现关键词检索的Java/Python实践
Hi,你好! 轻量级搜索接口技术解析:快速实现关键词检索的Java/Python实践 接口特性与适用场景 本接口适用于需要快速集成搜索能力的开发场景,支持通过关键词获取结构化搜索结果。典型应用场景包括: 垂直领域信息检索…...
防爆风扇选型指南:根据风量风压匹配应用场景
在化工、石油、煤矿等存在易燃易爆气体或粉尘的危险环境中,通风设备的安全性能至关重要,防爆风扇成为保障生产环境安全与空气流通的关键装备。正确选型是确保其发挥最佳效能的前提,而根据风量风压匹配应用场景则是选型的核心要点。 风量&am…...
Laravel 中使用 JWT 作用户登录,身份认证
什么是JWT: JWT 全名 JSON Web Token,是一种开放标准 (RFC 7519)。 用于在网络应用环境间安全地传输信息作为 JSON 对象。 它是一种轻量级的认证和授权机制,特别适合分布式系统的身份验证。 核心特点 紧凑格式:体积小&#x…...
Git安装
1、 下载Git https://git-scm.com/ 2、 双击【Git-2.44.0-64-bit.exe】安装: 2-1、 选择自定义安装目录:F:\software\Git 2-2、 一直点击next,直到安装成功。 2-3、 在git项目文件夹,右键出现Git GUI Here和Git Bash Here就说明成…...
bit与byte的区别与联系?
李升伟 整理 byte 和 bit 是计算机中常用的数据单位,它们的主要区别和联系如下: 1. 定义 bit(比特):计算机中最小的数据单位,表示一个二进制位,值为0或1。 byte(字节)…...
程序化广告行业(51/89):Cookie映射与移动设备ID映射解析
程序化广告行业(51/89):Cookie映射与移动设备ID映射解析 在当今数字化营销的浪潮中,程序化广告已经成为企业精准触达目标客户的重要手段。作为一名对程序化广告充满兴趣的学习者,我希望通过这篇博客和大家一起深入探索…...
从吉卜力漫画到艺术创造:GPT-4o多种风格绘图Prompt大全
在3月底,GPT-4o掀起了一阵吉卜力绘图浪潮,大家纷纷输入一张图片,让4o模型进行风格化迁移,其中吉卜力风格的漫画在社交媒体上最为火热。在大家争议4o的训练数据是否侵权和4o背后的技术原理的时候,我们先来玩一玩&#x…...
48. 旋转图像
leetcode Hot 100系列 文章目录 一、核心操作二、外层配合操作三、核心模式代码总结 一、核心操作 先上下翻转再沿着对角线翻转 提示:小白个人理解,如有错误敬请谅解! 二、外层配合操作 三、核心模式代码 代码如下: class S…...
【Linux篇】自主Shell命令行解释器
📌 个人主页: 孙同学_ 🔧 文章专栏:Liunx 💡 关注我,分享经验,助你少走弯路! 文章目录 1. 获取用户名的接口2. 等待用户输入接口3. 将上述代码进行面向对象式的封装4. 命令行解析5.…...
leetcode 2873. 有序三元组中的最大值 I
欢迎关注更多精彩 关注我,学习常用算法与数据结构,一题多解,降维打击。 文章目录 题目描述题目剖析&信息挖掘解题思路方法一 暴力枚举法思路注意复杂度代码实现 方法二 公式拆分动态规划思路注意复杂度代码实现 题目描述 [2873] 有序三元…...
深度学习 Deep Learning 第14章 自编码器
深度学习 Deep Learning 第14章 自编码器 内容概要 本章深入探讨了自编码器(Autoencoders),这是一种用于特征学习和降维的神经网络架构。自编码器通过编码器和解码器两个部分,将输入数据映射到一个内部表示(编码&…...
全国产传感器的可靠性、MTBF计算、极限测试与加速寿命测试
全国产传感器的可靠性是指传感器在规定条件下和规定时间内完成规定功能的能力。它是衡量传感器性能的重要指标之一,直接影响传感器的使用寿命和系统稳定性。武汉利又德的小编来和大家分享一下关于全国产传感器的可靠性以及MTBF计算、极限测试与加速寿命测试的小知识…...
【算法中的数学】裴蜀定理(Bézout’s Identity)总结
裴蜀定理(Bzout’s Identity)总结 裴蜀定理是数论中的一个重要定理,描述了整数线性组合与最大公约数(GCD)之间的关系。 1. 裴蜀定理的内容 对于任意两个整数 a a a 和 b b b,设它们的最大公约数为 d …...
unity点击button后不松开通过拖拽显示模型松开后模型实例化
using System.Collections; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI;[RequireComponent(typeof(Button))] // 确保脚本挂在Button上 public class DragButtonSpawner : MonoBehaviour, IPointerDownHandler, IDragHandler, IPointerUpHandle…...
计算机网络复习 吉林大学
1、信息交换的三种方式:电路交换,分组交换,报文交换。 从通信资源的分配角度来看,交换就是按照某种方式动态地分配传输线路的资源。 电路交换:(星形结构替代全连接) 电话交换机接通电话的方式…...
超级好用的小软件,连接电脑和手机。
将手机变成电脑摄像头的高效工具Iriun Webcam是一款多平台软件,能够将手机摄像头变成电脑的摄像头,通过简单的设置即可实现视频会议、直播、录制等功能。它支持Windows、Mac和Linux系统,同时兼容iOS和Android手机,操作简单&#x…...
【JavaScript】十三、事件监听与事件类型
文章目录 1、事件监听1.1 案例:击关闭顶部广告1.2 案例:随机点名1.3 事件监听的版本 2、事件类型2.1 鼠标事件2.1.1 语法2.1.2 案例:轮播图主动切换 2.2 焦点事件2.2.1 语法2.2.2 案例:模拟小米搜索框 2.3 键盘事件2.3.1 语法2.3.…...
微服务架构技术栈选型避坑指南:10大核心要素深度拆解
微服务架构的技术栈选型直接影响系统的稳定性、扩展性和可维护性。以下从10大核心要素出发,结合主流技术方案对比、兼容性评估、失败案例及优化策略,提供系统性选型指南。 1. 服务框架与通信 关键考量点 扩展性:框架需支持定制化扩展&#x…...
虚拟试衣间微信小程序解决方案
目录 项目名称: 云尚衣橱 核心功能模块: 技术栈选型: 架构设计概览: 详细功能点实现思路: 数据库设计 (MongoDB 示例): 开发步骤建议: 关键注意事项和挑战: 项目名称: 云尚衣橱 核心功能模块: 用户系统 (User System) 我的衣柜 (My Wardrobe) 虚拟试衣间 (Vir…...
C++STL——容器-vector(含部分模拟实现,即地层实现原理)(含迭代器失效问题)
目录 容器——vector 1.构造 模拟实现 2.迭代器 模拟实现: 编辑 3.容量 模拟实现: 4.元素的访问 模拟实现 5.元素的增删查改 迭代器失效问题: 思考问题 【注】:这里的模拟实现所写的参数以及返回值,都是…...
MoLe-VLA:通过混合层实现的动态跳层视觉-语言-动作模型实现高效机器人操作
25年3月来自南京大学、香港理工、北大和香港科技大学的论文“MoLe-VLA: Dynamic Layer-skipping Vision Language Action Model via Mixture-of-Layers for Efficient Robot Manipulation”。 多模态大语言模型 (MLLM) 在理解复杂语言和视觉数据方面表现出色,使通用…...
《数字图像处理》教材寻找合作者
Rafael Gonzalez和Richard Woods所著的《数字图像处理》关于滤波器的部分几乎全错,完全从零开始写,困难重重。关于他的问题已经描述在《数字图像处理(面向新工科的电工电子信息基础课程系列教材)》。 现寻找能够共同讨论、切磋、…...
uni-app 框架 调用蓝牙,获取 iBeacon 定位信标的数据,实现室内定位场景
背景:最近需要对接了一个 叫 iBeacon 定位信标 硬件设备,这个设备主要的作用是,在信号不好的地方,或者室内实现定位,准确的找到某个东西。就比如 地下停车场,商城里,我们想知道这个停车场的某个…...
Java面试黄金宝典29
1. 什么是普通索引和唯一性索引 定义: 普通索引:是最基本的索引类型,它为数据表中的某一列或多列建立索引,以加快数据的查询速度。它不限制索引列的值重复,允许存在多个相同的值。唯一性索引:在普通索引的基…...
C语言常见3种排序
主要是三种排序方法:冒泡排序、选择排序、插入排序。 文章目录 一、冒泡排序 1.代码: 2.工作原理: 3.具体过程: 二、选择排序 1.代码 2. 工作原理 3.具体过程: 三、插入排序 1.代码 2.工作原理 3.具体过程 总结 一、…...
Nyquist插件基础:LISP语法-自定义函数
1 Nyquist插件基础:LISP语法-自定义函数 在 Nyquist 里,自定义函数能够让你把特定的操作封装起来,实现代码复用和逻辑模块化。下面详细介绍如何在 Nyquist 中定义和使用自定义函数。 1.1.1 1. 基本函数定义 在 Nyquist 中使用 defun 来定义…...
Visual-RFT:视觉强化微调
文章目录 速览摘要1. 引言2. 相关工作大型视觉语言模型(LVLMs)强化学习 3. 方法3.1. 初步带可验证奖励的强化学习DeepSeek R1-Zero和GRPO 3.2. Visual-RFT3.2.1. 视觉感知中的可验证奖励检测任务中的IoU奖励分类任务中的CLS奖励 3.2.2 数据准备 4. 实验4…...
快速入手-基于DRF的过滤、分页、查询配置(十五)
1、过滤需要安装插件 pip install django-filter 2、注册 INSTALLED_APPS [ "django.contrib.admin", "django.contrib.auth", "django.contrib.contenttypes", "django.contrib.sessions", "django.contrib.messages",…...
最新Spring Security实战教程(八)Remember-Me实现原理 - 持久化令牌与安全存储方案
🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Micro麦可乐的博客 🐥《Docker实操教程》专栏以最新的Centos版本为基础进行Docker实操教程,入门到实战 🌺《RabbitMQ》…...
gcc 链接顺序,静态库循环依赖问题
链接过程由链接器 ld 负责。通常 GCC 间接驱动之。 越底层的库,在链接命令行中的位置应越靠后。 文章目录 链接过程※ 但是对于静态库,链接器仅提取当前未解析符号所需的对象文件,未使用的对象文件会被丢弃。静态库(.a)…...
linux内核漏洞检测利用exp提权
案例一dirtycow(CVE-2016-5159) 有个前置知识就是 获取liunx的内核 hostnamectl uname -a 然后这个内核漏洞进行提权的步骤也是和手工win进行提权差不多 也是需要使用辅助工具在本地进行辅助检测 然后去nomi-sec/PoC-in-GitHub: &#…...
【学Rust写CAD】21 2D 点(point.rs)
源码 //matrix/point.rs use std::ops::Mul; use super::algebraic_units::{Zero, One}; use super::generic::Matrix;/// 点坐标结构体 #[derive(Debug, Clone, Copy, PartialEq)] pub struct Point<X, Y>(Matrix<X, Y, One, Zero, Zero, One>);impl<X, Y>…...
Jmeter的压测使用
Jmeter基础功能回顾 一、创建Jmeter脚本 1、录制新建 (1)适用群体:初学者 2、手动创建 (1)需要了解Jmeter的常用组件 元件:多个类似功能组件的容器(类似于类) 各元件作用 组件…...
C语言--统计输入字符串中的单词个数
输入 输入:大小写字母以及空格,单词以空格分隔 输出:单词个数 代码 如果不是空格且inWord0说明是进入单词的第一个字母,则单词总数加一。 如果是空格,证明离开单词,inWord 0。 #include <stdio.h&g…...
《雷神之锤 III 竞技场》快速求平方根倒数的计算探究
1. 《雷神之锤 III 竞技场》快速求平方根导数源代码 此处先列出其源代码,这段代码的目标是计算一个浮点数平方根的导数,也就是如下形式: f ( x ) 1 x f(x) \frac{1}{\sqrt{x}} f(x)x 1这段代码可以说非常难以理解,尤其是 …...
深入解析 Java 8 Function 接口:函数式编程的核心工具
精心整理了最新的面试资料和简历模板,有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 Java 8 引入的 java.util.function.Function 接口是函数式编程范式的核心组件之一,本文将全面解析其使用方法,并通过丰富的代码示例演…...
软件重构与项目进度的矛盾如何解决
软件重构与项目进度之间的矛盾可以通过明确重构目标与范围、采用渐进式重构策略、优化项目管理流程、提高团队沟通效率、建立重构意识文化等方式解决。其中,采用渐进式重构策略尤为关键。渐进式重构是指在日常开发过程中,以小步骤持续进行重构࿰…...
redis的geo结构实现[附近商铺]功能
先上结论 geo地理位置算出来是不准的 实现思路 redis6.2支持了经纬度数据格式 支持经纬度检索 需要将redis升级 否则会报错不支持命令 pom文件如果spring-data-redis是2.7.9的boot版本则要改一下支持geo: <dependency><groupId>org.springframework.boot</g…...
W3C XML Schema 活动
W3C XML Schema 活动 概述 W3C XML Schema(XML Schema)是万维网联盟(W3C)定义的一种数据描述语言,用于定义XML文档的结构和约束。XML Schema为XML文档提供了一种结构化的方式,确保数据的一致性和有效性。本文将详细介绍W3C XML Schema的活动,包括其发展历程、主要特点…...
深入解析C++类:面向对象编程的核心基石
一、类的本质与核心概念 1.1 类的基本定义 类是将**数据(属性)与操作(方法)**封装在一起的用户自定义类型,是面向对象编程的核心单元。 // 基础类示例 class BankAccount { private: // 访问控制string owner; …...
MySQL 复制与主从架构(Master-Slave)
MySQL 复制与主从架构(Master-Slave) MySQL 复制与主从架构是数据库高可用和负载均衡的重要手段。通过复制数据到多个从服务器,既可以实现数据冗余备份,又能分担查询压力,提升系统整体性能与容错能力。本文将详细介绍…...
2025年上软考——【数据库系统工程师】考前60天冲刺学习指南!!!
距离2025上半年“数据库系统工程师”考试已经不足两个月了,还没有准备好的小伙伴赶紧行动起来。为了帮助大家更好的冲刺学习,特此提供一份考前60天学习指南。本指南包括考情分析、学习规划、冲刺攻略三个部分,可以参考此指南进行最后的复习要…...
如果数据包的最后一段特别短,如何处理?
在处理TCP粘包/拆包时,如果最后一个数据段特别短(例如仅包含部分包头部或部分数据体),需要通过合理的缓冲区和协议设计来确保数据完整性。以下是具体处理方案: 1. 缓冲区管理:保留不完整数据 核心思想&…...
vue修饰符
在 Vue 中,修饰符是一种特殊的后缀,用于改变指令的默认行为 stop <template><div><h2>vue修饰符</h2><div class"box" click"boxClikc"><button click"btnClick">按钮</button&…...
Redis-06.Redis常用命令-列表操作命令
一.列表操作命令 LPUSH key value1 [value2]: LPUSH mylist a b c d: LRANGE key start stop: LRANGE mylist 0 -1: lrange mylist 0 2: d c b RPOP KEY:移除并返回最后一个元素 RPOP list a LLEN key…...
LTSPICE仿真电路:(二十四)MOS管推挽驱动电路简单仿真
1.Mos管驱动电路基本的拓扑 前面在十一篇的时候学习了MOS管的简单的应用, 这一篇继续补充MOS管的驱动电路。 这个电路应该是最基本的电路仿真,先看电路以及仿真结果,以下仿真结果的电压皆为信号发生器提供的波形图。 看仿真结果比较明了&a…...
GFS论文阅读笔记
文章目录 摘要一、引言二、设计总览2.1、假设2.2、接口2.3、架构2.4 单Master2.5 Chunk大小2.6 元数据2.7 一致性模型 3 系统交互3.1 租约和变更顺序3.2 数据流3.3 原子性的操作:Record append3.4 快照-SNAPSHOT 4. master操作4.1 namespace的管理与锁定4.2 副本的分…...
6. 王道_网络协议
1 网络协议和网络模型 2 TCP/IP协议族概览 2.1 四层模型的各层实体 2.2 协议数据单元的转换 2.3 常见协议以及分层 2.4 ifconfig 2.5 本地环回设备 3 以太网 3.1 以太网和交换机 3.2 以太网帧 MAC地址大小 48位 6字节 IP地址 32位 4字节 port 16位 2字节 3.3 ARP协议 4 IP协…...