當前位置:
首頁 > 最新 > Mycat——分表分庫組件

Mycat——分表分庫組件

系統開發中,資料庫是非常重要的一個點。除了程序的本身的優化,如:SQL語句優化、代碼優化,資料庫的處理本身優化也是非常重要的。主從、熱備、分表分庫等都是系統發展遲早會遇到的技術問題問題。Mycat是一個廣受好評的資料庫中間件,已經在很多產品上進行使用了。希望通過這篇文章的介紹,能學會Mycat的使用。

1.Mycat下載安裝

Mycat解壓後的目錄結構如下:

目錄

說明

2.Mycat架構

Mycat的架構其實很好理解,Mycat是代理,Mycat後面就是物理資料庫。和Web伺服器的Nginx類似。對於使用者來說,訪問的都是Mycat,不會接觸到後端的資料庫。

簡單分表的示例如下:

伺服器

IP

說明

Mycat作為主資料庫中間件,肯定是與代碼弱關聯的,所以代碼是不用修改的,使用Mycat後,資料庫連接是不變的,默認埠是8066。連接方式和普通資料庫一樣,如:jdbc:mysql://192.168.0.2:8066/

3.Mycat具體配置如下:

server.xml

32

32

0.0.0.0

4096

300000

100

druidparser

1

8066

9066

test

TESTDB

user

TESTDB

true

參數

說明

rule.xml

參數

說明

schema:

屬性

說明

table:

屬性

說明

dataNode:

屬性

說明

dataHost:

屬性

說明

4.登錄mycat

mysql -utest -ptest -h127.0.0.1 -P8066 -DTESTDB

測試資料庫:

DROP DATABASE IF EXISTS db01;

CREATE DATABASE db01;

USE db01;

CREATE TABLE users (

id INT NOT NULL AUTO_INCREMENT,

name VARCHAR(50) NOT NULL DEFAULT "",

addtime DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,

PRIMARY KEY (id)

)ENGINE=InnoDB DEFAULT CHARSET=utf8;

############################################################

DROP DATABASE IF EXISTS db02;

CREATE DATABASE db02;

USE db02;

CREATE TABLE item (

id INT NOT NULL AUTO_INCREMENT,

value INT NOT NULL default 0,

addtime DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,

PRIMARY KEY (id)

)ENGINE=InnoDB DEFAULT CHARSET=utf8;

############################################################

DROP DATABASE IF EXISTS db03;

CREATE DATABASE db03;

USE db03;

CREATE TABLE item (

id INT NOT NULL AUTO_INCREMENT,

value INT NOT NULL default 0,

addtime DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,

PRIMARY KEY (id)

)ENGINE=InnoDB DEFAULT CHARSET=utf8;

現在通過資料庫查詢資料庫和表,發現只有邏輯資料庫TESTDB而不是db01, db02, db03;而且表也是統一顯示的,而不是分布在不同的實際資料庫中。參考圖片如下:

現在在訪問Mycat在資料庫中插入數據,看數據能否按照前面配置的路由規則進行分表

測試SQL:

insert into users(name,addtime) values("zhangsan",now());

insert into users(name,addtime) values("lisi",now());

insert into item(id,value,addtime) values(1,100,now());

insert into item(id,value,addtime) values(2,100,now());

然後在Mycat上查看是否插入成功,下圖顯示插入成功

在Mycat上查詢數據:

然後登錄實際的資料庫(MySQL埠號3306),看分表是否成功。下圖顯示分表成功

至此Mycat安裝和測試分表分庫結束。功能測試正常。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 落葉飛翔的蝸牛 的精彩文章:

TAG:落葉飛翔的蝸牛 |