mysql 分庫分表mycat部署

2021-08-27 13:52:57 字數 1812 閱讀 7519

垂直分割

• 縱向切分

– 把單一的表,拆分成多個表,並分散到不同的資料庫

( 主機 ) 上。

– 乙個資料庫由多個表構成,每個表對應不同的業務,

可以按照業務對錶進行分類,將其分布到不同的資料

庫 ( 主機 ) 上,實現專庫專用,讓不同的庫 ( 主機 ) 分

擔不同的業務

水平分割

• 橫向切分

– 按照表中某個欄位的某種規則,把向表中寫入的記錄

分散到多個庫 ( 主機 ) 中。

– 簡單來說,就是按照資料行切分,將表中的某些行存

儲到指定的資料庫 ( 主機 ) 中。

分片規則

• 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 ...