日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

企业实战_17_MyCat水平扩展_跨分片查询_ER分片

發布時間:2024/9/27 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 企业实战_17_MyCat水平扩展_跨分片查询_ER分片 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

接上一篇:企業實戰_16_MyCat全局自增ID
https://blog.csdn.net/weixin_40816738/article/details/100064315

案例比較:
在垂直拆分場景中,針對字段個數少的類型為字典類型的表,我們可以使用全局表的方式解決。
在水平擴展場景中,針對數據量很大的表,怎樣實現跨分片查詢呢? ER分片

文章目錄

  • 一、跨分片查詢的另一個場景
    • 1. 思考
    • 2. 回顧!
    • 3. 目前,歸納
          • 二、配置order_detail表的全局自增id

一、跨分片查詢的另一個場景

1. 思考

order_master表進行了切片操作,而order_detail沒有進行切片操作, 2張表,不在一個分片中,現在這種關聯屬于跨分片關聯,針對這種跨分片的查詢應該如何處理呢?

2. 回顧!

  • 在垂直拆分場景中,針對這種跨分片查詢的情況,有3種方式解決跨分片查詢。
方式應用場景/說明
api結果拼接,比較耗時
數據冗余數據冗余量大
全局表字段少 字典類型的表

3. 目前,歸納

  • 在水平擴展場景,針對這種跨分片查詢的情況,使用方式解決跨分片查詢。
方式應用場景/說明
ER分片字段多,訪問頻繁,數據集大
  • 得出結論!

全局表:適用于字段少的字典類型的表的場景,而order_master訂單表是一個非常龐大的表,調用比較頻繁,因此并不適合使用全局表的應用場景。

ER分片表,是通過ER關系來進行分片的,可以把需要兩個關聯的表,根據他們的關聯鍵,把要關聯的這些數據分布到同一個分片內,那么,我們在同一個分片內來解決這個關聯問題,以此來,解決跨分片查詢的問題

mysql -uapp_imooc -p123456 -h192.168.92.101 -P8066mysql> select * from order_master a join order_detail b on a.order_id = b.order_id; ERROR 1064 (HY000): invalid route in sql, multi tables found but datanode has no intersection sql:select * from order_master a join order_detail b on a.order_id = b.order_id mysql>


ER分片
#分別在order_db01、order_db02、order_db03、order_db04數據庫中創建order_detail表

#登錄node2節點,在order_db01、order_db02數據庫中創建order_detail表 [root@node2 ~]# mysql -uroot -p123456 mysql> use order_db01; mysql> use order_db02; 依次初始化創建表sql#登錄node3節點,在order_db03、order_db04數據庫中創建order_detail表 [root@node3 ~]# mysql -uroot -p123456 mysql> use order_db03; mysql> use order_db04; 依次初始化創建表sql

初始化創建表sql

CREATE TABLE `order_detail` (`order_detail_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主鍵ID,訂單詳情表ID',`order_id` int(10) unsigned NOT NULL COMMENT '訂單表ID',`product_id` int(10) unsigned NOT NULL COMMENT '訂單商品ID',`product_name` varchar(50) NOT NULL COMMENT '商品名稱',`product_cnt` int(11) NOT NULL DEFAULT '1' COMMENT '購買商品數量',`product_price` decimal(8,2) NOT NULL COMMENT '購買商品單價',`average_cost` decimal(8,2) NOT NULL DEFAULT '0.00' COMMENT '平均成本價格',`weight` float DEFAULT NULL COMMENT '商品重量',`fee_money` decimal(8,2) NOT NULL DEFAULT '0.00' COMMENT '優惠分攤金額',`w_id` int(10) unsigned NOT NULL COMMENT '倉庫ID',`modified_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改時間',PRIMARY KEY (`order_detail_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='訂單詳情表';

數據清理

# 刪除order_master的數據 mysql -uapp_imooc -p123456 -h192.168.92.101 -P8066 use imooc_db; delete from order_master;

添加分片配置
修改編輯schema.xml
order_master在的table標簽中添加childTable 標簽,并把下面以前定義的的order_detailtable標簽刪除

cd /app/mycat/conf/ vim schema.xml <table name="order_master" primaryKey="order_id" dataNode="ordb01,ordb02,ordb03,ordb04" rule="order_master" autoIncrement="true"/> <childTable name="order_detail" primaryKey="order_detail_id" joinKey="order_id" parentKey="order_id" autoIncrement="true" /> </table>

注:在childTable標簽中,沒有定義 dataNode屬性,因此,說明字表和父表公用此屬性

  • joinKey 父表和字表關聯的鍵
  • parentKey 父表主鍵
  • primaryKey order_detail表的主鍵
  • autoIncrement 全局自增id 一旦開啟需要在配置文件中配置才可以生效

由于order_detail配置了autoIncrement="true" 這個屬性,因此,我們需要配置order_detail表的全局自增id
配置order_detail表的全局自增id

二、配置order_detail表的全局自增id

需要在sequence_db_conf.properties文件中,添加order_detail的id數據節點

cd /app/mycat/conf/ vim sequence_db_conf.properties#sequence stored in datanode GLOBAL=mycat ORDER_MASTER=mycat ORDER_DETAIL=mycat

設置自增配置項‘

mysql -uroot -p123456 use mycat;# 查詢現有 mysql> select * from MYCAT_SEQUENCE; +--------------+---------------+-----------+ | name | current_value | increment | +--------------+---------------+-----------+ | GLOBAL | 1 | 1 | | ORDER_MASTER | 11 | 1 | +--------------+---------------+-----------+# 插入新的自增配置項 mysql> insert into MYCAT_SEQUENCE values ('ORDER_DETAIL',1,1); Query OK, 1 row affected (0.00 sec)mysql> select * from MYCAT_SEQUENCE; +--------------+---------------+-----------+ | name | current_value | increment | +--------------+---------------+-----------+ | GLOBAL | 1 | 1 | | ORDER_DETAIL | 1 | 1 | | ORDER_MASTER | 11 | 1 | +--------------+---------------+-----------+ 3 rows in set (0.00 sec)# 為了演示好看,將自增ID都改成從1開始,生產環境不能操作,這一步也可以不操作 mysql> update MYCAT_SEQUENCE set current_value =1 where name ='ORDER_MASTER'; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0mysql> select * from MYCAT_SEQUENCE; +--------------+---------------+-----------+ | name | current_value | increment | +--------------+---------------+-----------+ | GLOBAL | 1 | 1 | | ORDER_DETAIL | 1 | 1 | | ORDER_MASTER | 1 | 1 | +--------------+---------------+-----------+ 3 rows in set (0.00 sec)

重啟mycat

mycat stopmycat start # 登錄mycat批量插入order_master和order_detail表的數據 mysql -uapp_imooc -p123456 -h192.168.92.101 -P8066use imooc_db;# 初始化腳本,批量插入order_master和order_detail表的數據


從上面圖的order_id中可以看出,order_master和order_detail都在通一個分片中

select a.order_id,order_sn,product_name from order_master a join order_detail b on a.order_id=b.order_id;

到此,ER跨分片查詢的問題已經解決!

下一篇:企業實戰_18_MyCat_ZK集群安裝部署
https://gblfy.blog.csdn.net/article/details/100075631

總結

以上是生活随笔為你收集整理的企业实战_17_MyCat水平扩展_跨分片查询_ER分片的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 一级全黄毛片 | 欧美日韩在线免费观看视频 | 亚洲色图欧美视频 | 欧美一级专区免费大片 | 午夜三区 | 中文字幕不卡在线播放 | www.777奇米影视 | 日韩精品一二三区 | 亚洲欧美色图 | 久久99日 | 日本韩国欧美一区 | 成年人免费在线观看视频网站 | 日韩成人av网址 | 久久99久久99精品中文字幕 | 欧美日韩a| 清纯唯美亚洲综合 | 三级第一页 | 亚洲成人第一 | 毛片少妇 | 中国黄色片子 | 精品动漫一区二区 | 欧美视频在线观看一区二区三区 | 韩国一二三区 | 亚洲第一区视频 | 欧美一二三区 | 亚洲黄色小说网 | 玉丸(双性调教) | 成人91网站 | 欧美日本国产 | 9999re| 青青草国产 | 久久黄色av | 91啪国产在线 | 久久精品亚洲a | 国产一区二区免费在线观看 | 在线中文字幕亚洲 | 尤物在线观看视频 | 日本护士体内she精2xxx | 国产欧美激情 | 99国内揄拍国内精品人妻免费 | 国产女人18毛片水真多18精品 | 国产十八熟妇av成人一区 | 免费观看视频一区 | 欧美色图视频在线 | 性欧美69| 99久久精品国产亚洲 | 日韩一级在线播放 | 禁断介护av一区二区 | 免费超爽大片黄 | 99久久久国产精品无码免费 | 国内自拍亚洲 | 精品国产午夜 | 日本电车痴汉 | 国产靠逼视频 | www.久久久久久久久久 | 国产做受视频 | 超碰超碰超碰超碰 | 亚洲一区二区自拍偷拍 | 国产亚洲一区二区三区四区 | 午夜精彩视频 | 中文字幕亚洲精品在线 | 青青操青青| 国产一区在线免费观看 | 五月婷婷丁香久久 | 少妇色| 成人在线三级 | 精品国产乱码久久久久久108 | 欧美三区在线 | 欧美日韩亚洲成人 | 国产真实老熟女无套内射 | 高清久久 | 不卡在线播放 | 三级免费黄 | 特黄视频 | 日韩免费观看一区二区三区 | 欧美刺激性大交 | 日韩中文字幕高清 | 国产成人精品视频在线 | 欧美一区二区三区在线观看视频 | 色视av| m3u8成人免费视频 | 妺妺窝人体色www聚色窝仙踪 | 亚洲国产成人精品女人久久 | 深夜成人在线观看 | 另类色综合| 操操操操操操操 | 男人与雌性宠物交啪啪 | 国产性猛交xxxⅹ交酡全过程 | 欧美日色| 西方av在线 | 欧美日韩中文字幕视频 | 欧美黑人又粗又大高潮喷水 | 男插女视频在线观看 | 水蜜桃91 | 色婷婷小说 | 一区二区xxx | 青青草原综合网 | 人妻 丝袜美腿 中文字幕 | 国产精品呻吟 |