国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

MySQL-分庫(kù)分表詳解(四)

這篇具有很好參考價(jià)值的文章主要介紹了MySQL-分庫(kù)分表詳解(四)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

??作者:小劉在C站

??個(gè)人主頁:?小劉主頁?

??努力不一定有回報(bào),但一定會(huì)有收獲加油!一起努力,共赴美好人生!

??學(xué)習(xí)兩年總結(jié)出的運(yùn)維經(jīng)驗(yàn),以及思科模擬器全套網(wǎng)絡(luò)實(shí)驗(yàn)教程。專欄:云計(jì)算技術(shù)

??小劉私信可以隨便問,只要會(huì)絕不吝嗇,感謝CSDN讓你我相遇!

前言上章講到MySQL-分庫(kù)分表(三)本章繼續(xù)

目錄

MySQL

5 MyCat分片

5.1 垂直拆分

5.1.1 場(chǎng)景

?5.1.2 準(zhǔn)備

5.1.3 配置

1). schema.xml

2). server.xml

5.1.4 測(cè)試

5.1.5 全局表

配置完畢后,重新啟動(dòng)MyCat。


MySQL

MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),由瑞典MySQL AB 公司開發(fā),屬于 Oracle 旗下產(chǎn)品。MySQL 是最流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)之一,在 WEB 應(yīng)用方面,MySQL是最好的 RDBMS (Relational Database Management System,關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)) 應(yīng)用軟件之一。

MySQL是一種關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),關(guān)系數(shù)據(jù)庫(kù)將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉(cāng)庫(kù)內(nèi),這樣就增加了速度并提高了靈活性。

MySQL所使用的 SQL 語言是用于訪問數(shù)據(jù)庫(kù)的最常用標(biāo)準(zhǔn)化語言。MySQL 軟件采用了雙授權(quán)政策,分為社區(qū)版和商業(yè)版,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點(diǎn),一般中小型和大型網(wǎng)站的開發(fā)都選擇 MySQL 作為網(wǎng)站數(shù)據(jù)庫(kù)。

5 MyCat分片

5.1 垂直拆分
5.1.1 場(chǎng)景
在業(yè)務(wù)系統(tǒng)中 , 涉及以下表結(jié)構(gòu) , 但是由于用戶與訂單每天都會(huì)產(chǎn)生大量的數(shù)據(jù) , 單臺(tái)服務(wù)器的數(shù)據(jù)
存儲(chǔ)及處理能力是有限的 , 可以對(duì)數(shù)據(jù)庫(kù)表進(jìn)行拆分 , 原有的數(shù)據(jù)庫(kù)表如下。
MySQL-分庫(kù)分表詳解(四),MySQL入門到實(shí)戰(zhàn),mysql,數(shù)據(jù)庫(kù),sql
現(xiàn)在考慮將其進(jìn)行垂直分庫(kù)操作,將商品相關(guān)的表拆分到一個(gè)數(shù)據(jù)庫(kù)服務(wù)器,訂單表拆分的一個(gè)數(shù)據(jù)庫(kù)服務(wù)器,用戶及省市區(qū)表拆分到一個(gè)服務(wù)器。最終結(jié)構(gòu)如下:
MySQL-分庫(kù)分表詳解(四),MySQL入門到實(shí)戰(zhàn),mysql,數(shù)據(jù)庫(kù),sql

?5.1.2 準(zhǔn)備

準(zhǔn)備三臺(tái)服務(wù)器, IP 地址如圖所示:
MySQL-分庫(kù)分表詳解(四),MySQL入門到實(shí)戰(zhàn),mysql,數(shù)據(jù)庫(kù),sql
并且在 192.168.200.210 , 192.168.200.213, 192.168.200.214 上面創(chuàng)建數(shù)據(jù)庫(kù)
shopping 。

5.1.3 配置

1). schema.xml

<schema name="SHOPPING" checkSQLschema="true" sqlMaxLimit="100">
<table name="tb_goods_base" dataNode="dn1" primaryKey="id" />
<table name="tb_goods_brand" dataNode="dn1" primaryKey="id" />
<table name="tb_goods_cat" dataNode="dn1" primaryKey="id" />
<table name="tb_goods_desc" dataNode="dn1" primaryKey="goods_id" />
<table name="tb_goods_item" dataNode="dn1" primaryKey="id" />
<table name="tb_order_item" dataNode="dn2" primaryKey="id" />
<table name="tb_order_master" dataNode="dn2" primaryKey="order_id" />
<table name="tb_order_pay_log" dataNode="dn2" primaryKey="out_trade_no" />
<table name="tb_user" dataNode="dn3" primaryKey="id" />
<table name="tb_user_address" dataNode="dn3" primaryKey="id" />
<table name="tb_areas_provinces" dataNode="dn3" primaryKey="id"/>
<table name="tb_areas_city" dataNode="dn3" primaryKey="id"/>
<table name="tb_areas_region" dataNode="dn3" primaryKey="id"/>
</schema>
<dataNode name="dn1" dataHost="dhost1" database="shopping" />
<dataNode name="dn2" dataHost="dhost2" database="shopping" />
<dataNode name="dn3" dataHost="dhost3" database="shopping" />
<dataHost name="dhost1" maxCon="1000" minCon="10" balance="0"
writeType="0" dbType="mysql" dbDriver="jdbc" switchType="1"
slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="master" url="jdbc:mysql://192.168.200.210:3306?
useSSL=false&amp;serverTimezone=Asia/Shanghai&amp;characterEncoding=utf8"
user="root" password="1234" />
</dataHost>
<dataHost name="dhost2" maxCon="1000" minCon="10" balance="0"
writeType="0" dbType="mysql" dbDriver="jdbc" switchType="1"
slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="master" url="jdbc:mysql://192.168.200.213:3306?
useSSL=false&amp;serverTimezone=Asia/Shanghai&amp;characterEncoding=utf8"
user="root" password="1234" />
</dataHost>
<dataHost name="dhost3" maxCon="1000" minCon="10" balance="0"
writeType="0" dbType="mysql" dbDriver="jdbc" switchType="1"
slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="master" url="jdbc:mysql://192.168.200.214:3306?
useSSL=false&amp;serverTimezone=Asia/Shanghai&amp;characterEncoding=utf8"
user="root" password="1234" />
</dataHost>

2). server.xml

<user name="root" defaultAccount="true">
<property name="password">123456</property>
<property name="schemas">SHOPPING</property>
<!-- 表級(jí) DML 權(quán)限設(shè)置 -->
<!--
<privileges check="true">
<schema name="DB01" dml="0110" >
<table name="TB_ORDER" dml="1110"></table>
</schema>
</privileges>
-->
</user>
<user name="user">
<property name="password">123456</property>
<property name="schemas">SHOPPING</property>
<property name="readOnly">true</property>
</user>

5.1.4 測(cè)試

1). 上傳測(cè)試 SQL 腳本到服務(wù)器的 /root 目錄
MySQL-分庫(kù)分表詳解(四),MySQL入門到實(shí)戰(zhàn),mysql,數(shù)據(jù)庫(kù),sql
2). 執(zhí)行指令導(dǎo)入測(cè)試數(shù)據(jù)
重新啟動(dòng) MyCat 后,在 mycat 的命令行中,通過 source 指令導(dǎo)入表結(jié)構(gòu),以及對(duì)應(yīng)的數(shù)據(jù),查看數(shù)據(jù)分布情況。
source /root/shopping-table.sql
source /root/shopping-insert.sql
將表結(jié)構(gòu)及對(duì)應(yīng)的測(cè)試數(shù)據(jù)導(dǎo)入之后,可以檢查一下各個(gè)數(shù)據(jù)庫(kù)服務(wù)器中的表結(jié)構(gòu)分布情況。 檢查是否和我們準(zhǔn)備工作中規(guī)劃的服務(wù)器一致。
MySQL-分庫(kù)分表詳解(四),MySQL入門到實(shí)戰(zhàn),mysql,數(shù)據(jù)庫(kù),sql

?3). 查詢用戶的收件人及收件人地址信息(包含省、市、區(qū))。

MyCat 的命令行中,當(dāng)我們執(zhí)行以下多表聯(lián)查的 SQL 語句時(shí),可以正常查詢出數(shù)據(jù)。
?

select ua.user_id, ua.contact, p.province, c.city, r.area , ua.address from
tb_user_address ua ,tb_areas_city c , tb_areas_provinces p ,tb_areas_region r
where ua.province_id = p.provinceid and ua.city_id = c.cityid and ua.town_id =
r.areaid ;
MySQL-分庫(kù)分表詳解(四),MySQL入門到實(shí)戰(zhàn),mysql,數(shù)據(jù)庫(kù),sql

?4). 查詢每一筆訂單及訂單的收件地址信息(包含省、市、區(qū))。

實(shí)現(xiàn)該需求對(duì)應(yīng)的 SQL 語句如下:
SELECT order_id , payment ,receiver, province , city , area FROM tb_order_master o
, tb_areas_provinces p , tb_areas_city c , tb_areas_region r WHERE
o.receiver_province = p.provinceid AND o.receiver_city = c.cityid AND
o.receiver_region = r.areaid ;
但是現(xiàn)在存在一個(gè)問題,訂單相關(guān)的表結(jié)構(gòu)是在 192.168.200.213 數(shù)據(jù)庫(kù)服務(wù)器中,而省市區(qū)的數(shù)
據(jù)庫(kù)表是在 192.168.200.214 數(shù)據(jù)庫(kù)服務(wù)器中。那么在 MyCat 中執(zhí)行是否可以成功呢?
MySQL-分庫(kù)分表詳解(四),MySQL入門到實(shí)戰(zhàn),mysql,數(shù)據(jù)庫(kù),sql
經(jīng)過測(cè)試,我們看到, SQL 語句執(zhí)行報(bào)錯(cuò)。原因就是因?yàn)?/span> MyCat 在執(zhí)行該 SQL 語句時(shí),需要往具體的數(shù)據(jù)庫(kù)服務(wù)器中路由,而當(dāng)前沒有一個(gè)數(shù)據(jù)庫(kù)服務(wù)器完全包含了訂單以及省市區(qū)的表結(jié)構(gòu),造成 SQL 語句失敗,報(bào)錯(cuò)。
對(duì)于上述的這種現(xiàn)象,我們?nèi)绾蝸斫鉀Q呢? 下面我們介紹的全局表,就可以輕松解決這個(gè)問題。

5.1.5 全局表

對(duì)于省、市、區(qū) / 縣表 tb_areas_provinces , tb_areas_city , tb_areas_region ,是屬于
數(shù)據(jù)字典表,在多個(gè)業(yè)務(wù)模塊中都可能會(huì)遇到,可以將其設(shè)置為全局表,利于業(yè)務(wù)操作。
修改 schema.xml 中的邏輯表的配置,修改 tb_areas_provinces 、 tb_areas_city
tb_areas_region 三個(gè)邏輯表,增加 type 屬性,配置為 global ,就代表該表是全局表,就會(huì)在
所涉及到的 dataNode 中創(chuàng)建給表。對(duì)于當(dāng)前配置來說,也就意味著所有的節(jié)點(diǎn)中都有該表了。

<table name="tb_areas_provinces" dataNode="dn1,dn2,dn3" primaryKey="id"
type="global"/>
<table name="tb_areas_city" dataNode="dn1,dn2,dn3" primaryKey="id"
type="global"/>
<table name="tb_areas_region" dataNode="dn1,dn2,dn3" primaryKey="id"
type="global"/> 
MySQL-分庫(kù)分表詳解(四),MySQL入門到實(shí)戰(zhàn),mysql,數(shù)據(jù)庫(kù),sql

配置完畢后,重新啟動(dòng)MyCat。

1). 刪除原來每一個(gè)數(shù)據(jù)庫(kù)服務(wù)器中的所有表結(jié)構(gòu)
2). 通過 source 指令,導(dǎo)入表及數(shù)據(jù)
source /root/shopping-table.sql
source /root/shopping-insert.sql
3). 檢查每一個(gè)數(shù)據(jù)庫(kù)服務(wù)器中的表及數(shù)據(jù)分布,看到三個(gè)節(jié)點(diǎn)中都有這三張全局表
4). 然后再次執(zhí)行上面的多表聯(lián)查的 SQL 語句
?
SELECT order_id , payment ,receiver, province , city , area FROM tb_order_master o
, tb_areas_provinces p , tb_areas_city c , tb_areas_region r WHERE
o.receiver_province = p.provinceid AND o.receiver_city = c.cityid AND
o.receiver_region = r.areaid ;

MySQL-分庫(kù)分表詳解(四),MySQL入門到實(shí)戰(zhàn),mysql,數(shù)據(jù)庫(kù),sql

??是可以正常執(zhí)行成功的。 ?????????

5). 當(dāng)在 MyCat 中更新全局表的時(shí)候,我們可以看到,所有分片節(jié)點(diǎn)中的數(shù)據(jù)都發(fā)生了變化,每個(gè)節(jié)點(diǎn)的全局表數(shù)據(jù)時(shí)刻保持一致。

??關(guān)注,就是我創(chuàng)作的動(dòng)力

??點(diǎn)贊,就是對(duì)我最大的認(rèn)可

??這里是小劉,勵(lì)志用心做好每一篇文章,謝謝大家文章來源地址http://www.zghlxwxcb.cn/news/detail-526840.html

到了這里,關(guān)于MySQL-分庫(kù)分表詳解(四)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • MySQL-分庫(kù)分表詳解(三)

    MySQL-分庫(kù)分表詳解(三)

    ?? 作者:小劉在C站 ?? 個(gè)人主頁: ?小劉主頁? ?? 努力不一定有回報(bào),但一定會(huì)有收獲加油!一起努力,共赴美好人生! ?? 學(xué)習(xí)兩年總結(jié)出的運(yùn)維經(jīng)驗(yàn),以及思科模擬器全套網(wǎng)絡(luò)實(shí)驗(yàn)教程。專欄: 云計(jì)算技術(shù) ??小劉私信可以隨便問,只要會(huì)絕不吝嗇,感謝CSD

    2024年02月12日
    瀏覽(44)
  • MySQL-分庫(kù)分表詳解(四)

    MySQL-分庫(kù)分表詳解(四)

    ?? 作者:小劉在C站 ?? 個(gè)人主頁: ?小劉主頁? ?? 努力不一定有回報(bào),但一定會(huì)有收獲加油!一起努力,共赴美好人生! ?? 學(xué)習(xí)兩年總結(jié)出的運(yùn)維經(jīng)驗(yàn),以及思科模擬器全套網(wǎng)絡(luò)實(shí)驗(yàn)教程。專欄: 云計(jì)算技術(shù) ??小劉私信可以隨便問,只要會(huì)絕不吝嗇,感謝CSD

    2024年02月12日
    瀏覽(21)
  • MySQL-分庫(kù)分表詳解(二)

    MySQL-分庫(kù)分表詳解(二)

    ?? 作者:小劉在C站 ?? 個(gè)人主頁: ?小劉主頁? ?? 努力不一定有回報(bào),但一定會(huì)有收獲加油!一起努力,共赴美好人生! ?? 學(xué)習(xí)兩年總結(jié)出的運(yùn)維經(jīng)驗(yàn),以及思科模擬器全套網(wǎng)絡(luò)實(shí)驗(yàn)教程。專欄: 云計(jì)算技術(shù) ??小劉私信可以隨便問,只要會(huì)絕不吝嗇,感謝CSD

    2024年02月16日
    瀏覽(47)
  • MySQL-分庫(kù)分表詳解(七)

    MySQL-分庫(kù)分表詳解(七)

    ?? 作者:小劉在C站 ?? 個(gè)人主頁: ?小劉主頁? ?? 努力不一定有回報(bào),但一定會(huì)有收獲加油!一起努力,共赴美好人生! ?? 學(xué)習(xí)兩年總結(jié)出的運(yùn)維經(jīng)驗(yàn),以及思科模擬器全套網(wǎng)絡(luò)實(shí)驗(yàn)教程。專欄: 云計(jì)算技術(shù) ??小劉私信可以隨便問,只要會(huì)絕不吝嗇,感謝CSD

    2024年02月16日
    瀏覽(18)
  • MySQL-分庫(kù)分表詳解(一)

    MySQL-分庫(kù)分表詳解(一)

    ?? 作者:小劉在C站 ?? 個(gè)人主頁: ?小劉主頁? ?? 努力不一定有回報(bào),但一定會(huì)有收獲加油!一起努力,共赴美好人生! ?? 學(xué)習(xí)兩年總結(jié)出的運(yùn)維經(jīng)驗(yàn),以及思科模擬器全套網(wǎng)絡(luò)實(shí)驗(yàn)教程。專欄: 云計(jì)算技術(shù) ??小劉私信可以隨便問,只要會(huì)絕不吝嗇,感謝CSD

    2024年02月12日
    瀏覽(20)
  • MySQL-分庫(kù)分表詳解(五)

    MySQL-分庫(kù)分表詳解(五)

    ?? 作者:小劉在C站 ?? 個(gè)人主頁: ?小劉主頁? ?? 努力不一定有回報(bào),但一定會(huì)有收獲加油!一起努力,共赴美好人生! ?? 學(xué)習(xí)兩年總結(jié)出的運(yùn)維經(jīng)驗(yàn),以及思科模擬器全套網(wǎng)絡(luò)實(shí)驗(yàn)教程。專欄: 云計(jì)算技術(shù) ??小劉私信可以隨便問,只要會(huì)絕不吝嗇,感謝CSD

    2024年02月13日
    瀏覽(23)
  • MySql詳解(七)--分庫(kù)分表篇

    MySql詳解(七)--分庫(kù)分表篇

    使用背景 當(dāng)【表的數(shù)量】達(dá)到了幾百上千張表時(shí),眾多的業(yè)務(wù)模塊都訪問這個(gè)數(shù)據(jù)庫(kù),壓力會(huì)比較大,考慮對(duì)其進(jìn)行分庫(kù)。 當(dāng)【表的數(shù)據(jù)】達(dá)到了幾千萬級(jí)別,在做很多操作都比較吃力,所以,考慮對(duì)其進(jìn)行分庫(kù)或者分表 數(shù)據(jù)切分(sharding)方案 數(shù)據(jù)的切分(Sharding)根據(jù)其

    2024年02月03日
    瀏覽(27)
  • 【進(jìn)階篇】MySQL分庫(kù)分表詳解

    【進(jìn)階篇】MySQL分庫(kù)分表詳解

    假設(shè)有一個(gè)電商網(wǎng)站,隨著用戶量和訂單量的增加,單一數(shù)據(jù)庫(kù)難以承載如此龐大的數(shù)據(jù)量,查詢速度也逐漸降低,這時(shí)就需要進(jìn)行分庫(kù)分表。 我們知道數(shù)據(jù)庫(kù)連接是有限的。在高并發(fā)的場(chǎng)景下,大量請(qǐng)求訪問數(shù)據(jù)庫(kù),MySQL單機(jī)是扛不住的!當(dāng)前非?;鸬奈⒎?wù)架構(gòu)出現(xiàn),就

    2024年02月10日
    瀏覽(16)
  • Jmeter(七) - 從入門到精通 - 建立數(shù)據(jù)庫(kù)測(cè)試計(jì)劃實(shí)戰(zhàn)<MySQL數(shù)據(jù)庫(kù)>(詳解教程)

    Jmeter(七) - 從入門到精通 - 建立數(shù)據(jù)庫(kù)測(cè)試計(jì)劃實(shí)戰(zhàn)<MySQL數(shù)據(jù)庫(kù)>(詳解教程)

    1.簡(jiǎn)介 ? 在實(shí)際工作中,我們經(jīng)常會(huì)聽到數(shù)據(jù)庫(kù)的性能和穩(wěn)定性等等,這些有時(shí)候也需要測(cè)試工程師去評(píng)估和測(cè)試,上一篇文章主要介紹了jmeter連接和創(chuàng)建數(shù)據(jù)庫(kù)測(cè)試計(jì)劃的過程,在文中通過示例和代碼非常詳細(xì)地介紹給大家,希望對(duì)各位小伙伴和童鞋們的學(xué)習(xí)或者工作具有一

    2024年02月13日
    瀏覽(41)
  • 【分庫(kù)分表】基于mysql+shardingSphere的分庫(kù)分表技術(shù)

    【分庫(kù)分表】基于mysql+shardingSphere的分庫(kù)分表技術(shù)

    目錄 1.什么是分庫(kù)分表 2.分片方法 3.測(cè)試數(shù)據(jù) 4.shardingSphere 4.1.介紹 4.2.sharding jdbc 4.3.sharding proxy 4.4.兩者之間的對(duì)比 5.留個(gè)尾巴 分庫(kù)分表是一種場(chǎng)景解決方案,它的出現(xiàn)是為了解決一些場(chǎng)景問題的,哪些場(chǎng)景喃? 單表過大的話,讀請(qǐng)求進(jìn)來,查數(shù)據(jù)需要的時(shí)間會(huì)過長(zhǎng) 讀請(qǐng)求過

    2024年03月12日
    瀏覽(46)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包