mysql 第二十篇文章~mycat 分片规则的初步讲解
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 一些分片函数的特殊属性
后面我会对每一个分片规则进行测试
以上是关于mysql 第二十篇文章~mycat 分片规则的初步讲解的主要内容,如果未能解决你的问题,请参考以下文章