MyCat分片規則之字串hash解析演算法分片

2021-09-27 01:50:18 字數 2144 閱讀 7897

字串hash解析分片,其實就是根據配置的hash預算位規則,將擷取的字串進行hash計算後,得到的int數值即為datanode index(分片節點索引,從0開始)。

實現步驟:

【a】建立資料庫和表

【b】配置server.xml

【c】rule.xml配置分片規則

【d】schema.xml配置分片節點、分片表等

【e】測試插入資料

【f】分析

【g】mycat原始碼中字串hash演算法

/**

* 字串hash演算法:s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]

* 其中s為字串的字元陣列,換算成程式的表示式為:

* h = 31*h + s.charat(i); => h = (h << 5) - h + s.charat(i);

* * @param start

* hash for s.substring(start, end)

* @param end

* hash for s.substring(start, end)

*/public static long hash(string s, int start, int end)

if (end > s.length())

long h = 0;

for (int i = start; i < end; ++i)

return h;

}

MyCat分片規則之取模分片

除了上一章總結的列舉分片之外,mycat中還有一種比較常見的分片 取模分片規則,本節將總結如何實現取模分片。a 建立資料庫和表結構 create database testmod1 create database testmod2 use testmod1 create table user id ...

MyCat分片規則之程式指定分片

a 建立資料庫和表 b 配置server.xml 0905 testdb user testdb true c 配置schema.xml分片表 分片節點等 d 配置rule.xml分片規則 e 測試插入資料 insert into user id,name values 111,0 zhangsan...

MyCat分片規則之取模範圍分片

本文介紹另外一種分片規則 取模範圍分片,先進行取模運算再根據求餘結果範圍進行分片。下面通過示例說明在mycat中如何進行取模範圍分片,具體實現步驟如下 a 建立資料庫和表 b 配置server.xml 邏輯庫資訊 使用者資訊 c 配置rule.xml,定義取模範圍分片規則 d 配置partition...