垂直分割
• 縱向切分
– 把單一的表,拆分成多個表,並分散到不同的資料庫
( 主機 ) 上。
– 乙個資料庫由多個表構成,每個表對應不同的業務,
可以按照業務對錶進行分類,將其分布到不同的資料
庫 ( 主機 ) 上,實現專庫專用,讓不同的庫 ( 主機 ) 分
擔不同的業務
水平分割
• 橫向切分
– 按照表中某個欄位的某種規則,把向表中寫入的記錄
分散到多個庫 ( 主機 ) 中。
– 簡單來說,就是按照資料行切分,將表中的某些行存
儲到指定的資料庫 ( 主機 ) 中。
分片規則
• mycat 服務提供 10 種分片規則。
– 1 列舉法 sharding-by-intfile
– 2 固定分片 rule1
– 3 範圍約定 auto-sharding-long
– 4 求模法 mod-long
– 5 日期列分割槽法 sharding-by-date
– 6 通配取模 sharding-by-pattern
– 7ascii 碼求模通配 sharding-by-prefixpattern
– 8 程式設計指定 sharding-by-substring
– 9 字串拆分 hash 解析 sharding-by-stringhash
– 10 一致性 hash sharding-by-murmur
配置 mysqlcat 伺服器
解壓mysqlcat包到/usr/local/mycat
修改配置檔案 server.xml
# 連線 mycat 服務時使用的使用者名稱 test
test # 使用
test 使用者連線 mycat 使用者時使用的密碼
testdb # 連
接上 mycat 服務後,可以看到的庫名多個時,使用逗號分隔 (是邏輯
上的庫名)
user
testdb
true # 定義只
讀許可權,使用定義的 user 使用者連線 mycat 服務後只有讀記錄的許可權
修改schema.xml 定義分片資訊
開啟服務
在客戶機myql -p8066登陸
分片演算法
• 每種分片規則對應一種演算法。
– 1 列舉法 sharding-by-intfile -> hash-int
– 2 固定分片 rule1 -> func1
– 3 範圍約定 auto-sharding-long -> rang-long
– 4 求模法 mod-long -> mod-long
– 5 日期列分割槽法 sharding-by-date ->sharding-by-date分片演算法(續 1 )
• 每種分片規則對應一種演算法
– 6 通配取模 sharding-by-pattern -> sharding-by-patter
n – 7ascii 碼求模通配 sharding-by-prefixpattern
-> sharding-by-prefixpattern
– 8 程式設計指定 sharding-by-substring -> sharding-by-sub
string
– 9 字串拆分 hash 解析 sharding-by-stringhash ->shar
ding-by-stringhash
– 10 一致性 hash sharding-by-murmur ->murmur
mycat實現mysql分庫分表
1.mycat介紹 mycat是乙個開源的分布式資料庫系統,是乙個實現了mysql協議的伺服器,前端使用者可以把它看作是乙個資料庫 用mysql客戶端工具和命令列訪問,而其後端可以用mysql原生協議與多個mysql伺服器通訊,也可以用jdbc協議與大多數主流資料庫伺服器通訊,其核心功能是分表分庫,...
Mycat分庫分表
schema.xml 配置 name dn1 datahost localhost1 database db1 name dn2 datahost localhost1 database db2 name dn3 datahost localhost1 database db3 把localhost...
mycat分庫分表
一 修改schema.xml select user 二 修改server.xml 0 0 10 011m 1k0 384m true 123456 testdb user testdb true 三 啟動關閉1 進入bin目錄,2 啟動輸入.mycat start。關閉命令 mycat stop ...