mysql 第二十篇文章~mycat 分片规则的初步讲解

一 简介:今天咱们来聊聊分片规则的初步理解

二 前沿:mycat的分片规则是十分丰富的,此外还可以根据java进行扩展

三 文件:rule.xml

四 具体分片规则:

<tableRule name="rule1">
  <tableRule name="rule2">
  <tableRule name="sharding-by-intfile">
  <tableRule name="auto-sharding-long">
  <tableRule name="mod-long">
  <tableRule name="sharding-by-murmur">
  <tableRule name="crc32slot">
  <tableRule name="sharding-by-month">
  <tableRule name="latest-month-calldate">
  <tableRule name="auto-sharding-rang-mod">
  <tableRule name="jch">

五 我们需要了解的:

1 我咨询过很多mycat线上的师兄,mycat自带的分片规则已经完全满足各种业务需求

2 了解以上所有的分片规则,并和研发探讨分片适用场景是十分必要的

3 一些分片规则是需要相关的文本设置规则的,这点要尤其注意

4 分片规则和 表类型(分片表+ER模型分片)相配合实现业务需求

六 分片规则构成

1 table rule name schema中要与这里设置一样
    2 columns 此处为分片字段,被分片表必须要有这个字段
    3 algorithm 分片函数名称
    4 function name 分片函数名称 与上面对应
    5 mapFile 很多分片函数需要一个文件制定规则 此处是文件名
    6 type 默认值为 0,0 表示 Integer,非零表示 String
    7 defaultNode 小于 0 表示不设置默认节点,大于等于 0 表示设置默认节点
    默认节点的作用:枚举分片时,如果碰到不识别的枚举值,就让它路由到默认节点 如果不配置默认节点(defaultNode 值小于 0 表示不配置默认节点),碰到不识别的枚举值就会报错,like this:can’t find datanode

8  <property name="count">2</property> 类似这种会设置默认节点,如果实际的配置节点数小于此处,会加载配置文件失败,要尤其注意

9  一些分片函数的特殊属性

后面我会对每一个分片规则进行测试

时间: 2024-07-29 16:24:50

mysql 第二十篇文章~mycat 分片规则的初步讲解的相关文章

mysql 第二十七篇文章~相关分片功能的测试七

一 简介:今天咱们来进行测试 二分片规则 auto-sharding-rang-mod 1 table 相关配置   <tableRule name="auto-sharding-rang-mod">  <rule>  <columns>id</columns>  <algorithm>rang-mod</algorithm>  </rule>  </tableRule>- 2 functi

mysql 第十七篇文章~mycat的读写分离

一 简介 今天咱们来聊聊mycat的一个功能 读写分离二 前沿: mycat的核心功能之一,读写分离的测试三    1读写分离的需求     1 将业务的读需求定向到从库去查询,减轻主库压力     2 将业务的特殊读需求定向到主库去查询   2 读写分离要考虑的问题    1 当从库出现问题时踢出有问题的从库(从库down机或者复制停止)    2 当从库出现延迟时踢出有问题的从库(单个从库延迟),但是当从库正常时,从库节点从新提供读服务    3 当所有提供读取的从节点的从库出现问题时,查询

Python开发【第二十篇】:缓存

Python开发[第二十篇]:缓存redis&Memcache 点击这里 Python之路[第九篇]:Python操作 RabbitMQ.Redis.Memcache.SQLAlchemy Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度.Memcached基于一个存储键/值对的hashmap.其守护进程(daemon )是用C写的,但是客户端可

第二十篇:DDR内存读写问题

最近在实际的项目中碰到这样的问题: 嵌入式系统DDR (RBC row, bank, columne), 每块1Gbit816, 两块由片选决定读写其中的一块. Memory controller通过AXI连接在SOC中. 1. 在I-CACHE没有使能的情况下, 通过MC访问DDR有三路TRAFFIC, 分别是取指令, CPU刷/写FRAME BUFFER, DMA取/读FRAME BUFFER的数据 在低分辨率的情况下, 没有发现图像闪烁, 到了高分辨率的情况(1680*1050 60p,

mysql 第二十五篇文章~相关分片功能的测试五

一 简介:今天咱们来进行测试 二分片规则 sharding-by-murmur 1 table 相关配置  <tableRule name="sharding-by-murmur"> <rule> <columns>id</columns> <algorithm>murmur</algorithm> </rule> </tableRule> 2 function 相关配置 <funct

mycat分片规则之分片枚举(sharding-by-intinfile)

刚开始看教程资料的时候,看教程文档感觉模糊,完全没明白分片枚举是个什么样的概念.于是网上搜素别人做的 案例来看,终于让我搜索到一份完整的测试案例,见如下地址:   https://www.cnblogs.com/ivictor/archive/2016/01/25/5155123.html       看完这个案例,恍然大悟教程里说的按照省份区县保存的意思.谢谢网上无偿分享文档的人们. 好了.来开始测试. 在schema.xml里定义一个分片表,如下:         [[email prote

mycat分片规则

配置:schema文件rule字段,rule文件name字段 (1)分片枚举:sharding-by-intfile (2)主键范围:auto-sharding-long (3)一致性hash:sharding-by-murmur (4)字符串hash解析:sharding-by-stringhash (5)按日期(天)分片:sharding-by-date (6)按单月小时拆分:sharding-by-hour (6)自然月分片:sharding-by-month --------常见的10种

mysql 第十五篇文章~mycat常用管理命令

一 简介:今天咱们来聊聊mycat的管理功能二 前沿:mycat的常用管理命令需要掌握三 常用命令:   1 登录命令: mysql -uuser -ppassword -P 9066 -h 127.0.0.1 mycat管理用户的配置在server.xml中   2 Show @@backend ;查看后端host列表   3 show @@heartbeat;       | NAME | TYPE | HOST | PORT | RS_CODE | RETRY | STATUS | TIM

【Python之路】第二十篇--MySQL(二)

视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名], 用户使用时只需使用[名称]即可获取结果集,并可以将其当作表来使用. 1.创建视图 --格式:CREATE VIEW 视图名称 AS SQL语句 create view v1 as select nid,name from tb1 where nid > 4 2.删除视图 --格式:DROP VIEW 视图名称 deop view v1 3.修改视图 -- 格式:ALTER VIEW 视图名称 AS S