Mycat搭建分庫(kù)分表方式
分庫(kù)分表解決的問題
單表數(shù)據(jù)量過大帶來(lái)的性能和存儲(chǔ)容量的限制的問題:
- 索引效率下降
- 讀寫瓶頸
- 存儲(chǔ)容量限制
- 事務(wù)性能問題
分庫(kù)分表架構(gòu)
- 再搭建一對(duì)主從復(fù)制節(jié)點(diǎn),3307主節(jié)點(diǎn),3309從節(jié)點(diǎn)
- 配置數(shù)據(jù)源 dw1 , dr1,
- 創(chuàng)建集群c1
- 創(chuàng)建邏輯庫(kù) CREATE DATABASE clusterdb;
- 創(chuàng)建廣播表 BROADCAST代表廣播表,意味著所有的數(shù)據(jù)源都會(huì)創(chuàng)建這張表
CREATE TABLE clusterdb.`dict_type` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主鍵', `type_id` int(11) NOT NULL COMMENT '業(yè)務(wù)類型id', `name` varchar(255) DEFAULT NULL COMMENT '名稱', PRIMARY KEY (`id`) USING BTREE )ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='類型字典' BROADCAST;
添加數(shù)據(jù)
INSERT INTO clusterdb.`dict_type` VALUES (1,1,'發(fā)貨單'); INSERT INTO clusterdb.`dict_type` VALUES (2,2,'收貨單'); INSERT INTO clusterdb.`dict_type` VALUES (3,3,'出庫(kù)單'); INSERT INTO clusterdb.`dict_type` VALUES (4,4,'入庫(kù)單'); INSERT INTO clusterdb.`dict_type` VALUES (5,5,'出室單'); INSERT INTO clusterdb.`dict_type` VALUES (6,6,'入室單');
驗(yàn)證一下是否每個(gè)數(shù)據(jù)節(jié)點(diǎn)都有數(shù)據(jù)
創(chuàng)建分片庫(kù)表
- 分庫(kù)分片表就是把數(shù)據(jù)按照特定的算法,分配到不同的數(shù)據(jù)庫(kù)表中,達(dá)到降低單表數(shù)據(jù)量過大導(dǎo)致的效率問題。
CREATE TABLE clusterdb.orders( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主鍵', `order_type` int(11) NOT NULL COMMENT '業(yè)務(wù)類型id', `order_name` varchar(255) DEFAULT NULL COMMENT '名稱', PRIMARY KEY (`id`) USING BTREE )ENGINE=INNODB DEFAULT CHARSET=utf8 dbpartition BY mod_hash(id) tbpartition BY mod_hash(id) tbpartitions 1 dbpartitions 2; INSERT into clusterdb.orders values(1,1,'test1'); INSERT into clusterdb.orders values(2,1,'test2'); INSERT into clusterdb.orders values(3,2,'test3'); INSERT into clusterdb.orders values(4,3,'test4'); INSERT into clusterdb.orders values(5,3,'test5'); INSERT into clusterdb.orders values(6,4,'test6'); INSERT into clusterdb.orders values(7,5,'test7'); INSERT into clusterdb.orders values(8,5,'test8'); INSERT into clusterdb.orders values(9,5,'test9'); INSERT into clusterdb.orders values(10,5,'test10');
驗(yàn)證結(jié)果
在mycat進(jìn)行查詢 select * from clusterdb.orders; 能得到全部的結(jié)果
主節(jié)點(diǎn)1,自動(dòng)創(chuàng)建clusterdb_0 orders_0 并且存放的是id偶數(shù)的數(shù)據(jù)
主節(jié)點(diǎn)2,自動(dòng)創(chuàng)建clusterdb_1 orders_1 并且存放的id是基數(shù)的數(shù)據(jù)
到這里分庫(kù)分表就成功啦~~
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
mysql?binlog查看指定數(shù)據(jù)庫(kù)的操作方法
MySQL 的 binlog(二進(jìn)制日志)主要記錄了數(shù)據(jù)庫(kù)上執(zhí)行的所有更改數(shù)據(jù)的 SQL 語(yǔ)句,包括數(shù)據(jù)的插入、更新和刪除等操作這篇文章主要介紹了mysql?binlog查看指定數(shù)據(jù)庫(kù)的方法,需要的朋友可以參考下2024-06-06詳解Mysql5.7自帶的壓力測(cè)試命令mysqlslap及使用語(yǔ)法
mysqlslap是一個(gè)診斷程序,旨在模擬MySQL服務(wù)器的客戶端負(fù)載并報(bào)告每個(gè)階段的時(shí)間。這篇文章主要介紹了Mysql5.7自帶的壓力測(cè)試命令mysqlslap的相關(guān)知識(shí),需要的朋友可以參考下2019-10-10解決數(shù)據(jù)庫(kù)有數(shù)據(jù)但查詢出來(lái)的值為Null問題
這篇文章主要介紹了解決數(shù)據(jù)庫(kù)有數(shù)據(jù)但查詢出來(lái)的值為Null問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10Windows10 mysql 8.0.12 非安裝版配置啟動(dòng)方法
這篇文章主要為大家詳細(xì)介紹了Windows10 mysql 8.0.12 非安裝版配置啟動(dòng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-05-05數(shù)據(jù)庫(kù)Mysql性能優(yōu)化詳解
這篇文章主要介紹了數(shù)據(jù)庫(kù)Mysql性能優(yōu)化的相關(guān)資料,需要的朋友可以參考下2016-05-05MySQL使用LOAD_FILE()函數(shù)方法總結(jié)
在本篇文章里小編給大家分享了關(guān)于MySQL使用LOAD_FILE()函數(shù)方法和相關(guān)知識(shí)點(diǎn),需要的朋友們學(xué)習(xí)下。2019-03-03