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