1. 程式人生 > >mysql 第二十篇文章~mycat 分片規則的初步講解

mysql 第二十篇文章~mycat 分片規則的初步講解

場景 fault XML 配置文件 理解 fun int 完全 文本

一 簡介:今天咱們來聊聊分片規則的初步理解

二 前沿: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 分片規則的初步講解