mysql分区表mycat_MySQL 中间件之Mycat垂直分表配置
垂直分表就是將一個庫下的多個表拆分到多個MySQL實例,實現庫壓力分流。
通過GTID模式復制,db01與db02之間不進行任何連接與復制
當前環境:
mycat --> db01與db02
db01 --> db03
db02 --> db04
當前垂直分表架構:
后端數據庫創建表:
在數據節點 1 創建 temp_1表 ,在數據節點 2 創建 temp_2表
[root@db01 ~]# mysql -uroot -p -e "create table course.temp_1(id int,name varchar(64));"
Enter password:
[root@db02 ~]# mysql -uroot -p -e "create table course.temp_2(id int,name varchar(64));"
Enter password:
Mycat配置分表:
[root@db-mycat conf]# cat schema.xml
# 在schema標簽下定義table標簽,指定 temp_1表在 dn1數據節點中 # 在schema標簽下定義table標簽,指定 temp_2表在 dn2數據節點中# 定義 dn1數據節點
# 定義 dn2數據節點
# 定義 node1數據組主機
select user()
# 定義 node2數據組主機
select user()
重啟Mycat服務:
mycat restart
查看數據節點狀態:
db01與db03是一組數據庫實例,db02與db04是一組數據庫實例
[root@db-mycat conf]# mysql -uroot -p -h172.18.1.100 -P9066 -e "show @@datasource;"
Enter password:
+----------+------+-------+-------------+------+------+--------+------+------+---------+-----------+------------+
| DATANODE | NAME | TYPE | HOST | PORT | W/R | ACTIVE | IDLE | SIZE | EXECUTE | READ_LOAD | WRITE_LOAD |
+----------+------+-------+-------------+------+------+--------+------+------+---------+-----------+------------+
| dn1 | db01 | mysql | 172.18.1.76 | 3306 | W | 0 | 10 | 1000 | 85 | 0 | 0 |
| dn1 | db03 | mysql | 172.18.1.78 | 3306 | R | 0 | 7 | 1000 | 86 | 5 | 0 |
| dn2 | db02 | mysql | 172.18.1.77 | 3306 | W | 0 | 10 | 1000 | 85 | 0 | 0 |
| dn2 | db04 | mysql | 172.18.1.79 | 3306 | R | 0 | 7 | 1000 | 82 | 1 | 0 |
+----------+------+-------+-------------+------+------+--------+------+------+---------+-----------+------------+
查看Mycat中間件所有表:
可以看到 Mycat中間件可以在 course庫下看到 兩張表
已經實現 垂直分表效果
[root@db-mycat conf]# mysql -uroot -p -h172.18.1.100 -P8066 -e "use course; show tables;"
Enter password:
+------------------+
| Tables_in_course |
+------------------+
| temp_1 |
| temp_2 |
+------------------+
# 通過 Mycat中間件插入兩條數據到 temp_1 temp_2 表內
[root@db-mycat conf]# mysql -uroot -p -h172.18.1.100 -P8066 -e "insert into course.temp_1 values(1,'aa');"
Enter password:
[root@db-mycat conf]# mysql -uroot -p -h172.18.1.100 -P8066 -e "insert into course.temp_2 values(2,'bb');"
Enter password:
# 通過 Mycat中間件查看被垂直分表的
[root@db-mycat conf]# mysql -uroot -p -h172.18.1.100 -P8066 -e "use course; select * from temp_1;"
Enter password:
+------+------+
| id | name |
+------+------+
| 1 | aa |
+------+------+
[root@db-mycat conf]# mysql -uroot -p -h172.18.1.100 -P8066 -e "use course; select * from temp_2;"
Enter password:
+------+------+
| id | name |
+------+------+
| 2 | bb |
+------+------+
查看后端真實數據庫表:
可以看到每個數據庫實例組 course庫下只有一張表。
同時通過 Mycat插入的數據也被分別分流到了兩個數據節點 dn1 、 dn2
# dn1 數據節點
[root@db01 ~]# mysql -uroot -p -e "use course; show tables;"
Enter password:
+------------------+
| Tables_in_course |
+------------------+
| temp_1 |
+------------------+
[root@db01 ~]# mysql -uroot -p -e "use course; select * from temp_1;"
Enter password:
+------+------+
| id | name |
+------+------+
| 1 | aa |
+------+------+
# dn2 數據節點
[root@db02 ~]# mysql -uroot -p -e "use course; show tables;"
Enter password:
+------------------+
| Tables_in_course |
+------------------+
| temp_2 |
+------------------+
[root@db02 ~]# mysql -uroot -p -e "use course; select * from temp_2;"
Enter password:
+------+------+
| id | name |
+------+------+
| 2 | bb |
+------+------+
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的mysql分区表mycat_MySQL 中间件之Mycat垂直分表配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 软件需求说明书模板和实际案例
- 下一篇: static和extern的用法总结