數(shù)據(jù)庫技術(shù)分表分庫策略_第1頁
數(shù)據(jù)庫技術(shù)分表分庫策略_第2頁
數(shù)據(jù)庫技術(shù)分表分庫策略_第3頁
數(shù)據(jù)庫技術(shù)分表分庫策略_第4頁
數(shù)據(jù)庫技術(shù)分表分庫策略_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、 每特教育|螞蟻課堂Java高端分布式、微服務(wù)IT培訓(xùn)。培訓(xùn)內(nèi)容:分布式、微服務(wù)、高可用、高并發(fā)、并發(fā)編程、JVM、性能調(diào)優(yōu)、真實企業(yè)實際項目等。主講老師:97后Java架構(gòu)師-螞蟻課堂創(chuàng)始人-余勝軍余老師微信號:yushengjun644 QQ:1051546329或者 644064779官方粉絲群: 193086273 官方網(wǎng)站 百度搜索:”螞蟻課堂 ”或者騰訊課堂搜索”每特學(xué)院 “ MyCat分片集群策略與原理分析余勝軍,男,余勝軍,男,19971997年出生年出生1010月月1717日出生,螞蟻課堂創(chuàng)始人日出生,螞蟻課堂創(chuàng)始人&97&97后互聯(lián)網(wǎng)創(chuàng)業(yè)者,后互聯(lián)網(wǎng)創(chuàng)業(yè)者,

2、創(chuàng)辦了上海每特教育科技有限公司,其公司產(chǎn)品是主要培訓(xùn)創(chuàng)辦了上海每特教育科技有限公司,其公司產(chǎn)品是主要培訓(xùn)JavaJava架構(gòu)師培訓(xùn)。架構(gòu)師培訓(xùn)。個人擅長技能個人擅長技能: : 擅長互聯(lián)網(wǎng)微服務(wù)與分布式架構(gòu),熟悉整套互聯(lián)網(wǎng)微服務(wù)電商架構(gòu)流程,及熟擅長互聯(lián)網(wǎng)微服務(wù)與分布式架構(gòu),熟悉整套互聯(lián)網(wǎng)微服務(wù)電商架構(gòu)流程,及熟悉解決微服務(wù)架構(gòu)中疑難雜癥問題,對悉解決微服務(wù)架構(gòu)中疑難雜癥問題,對SpingCloud2.xSpingCloud2.x、SpringBootSpringBoot有一定的深有一定的深入研究,其中錄制的入研究,其中錄制的SpringCloud/SpringBootSpringCloud/S

3、pringBoot課程破百萬粉絲學(xué)習(xí),是很多學(xué)員課程破百萬粉絲學(xué)習(xí),是很多學(xué)員學(xué)習(xí)微服務(wù)架構(gòu)的導(dǎo)師,為中國微服務(wù)事業(yè)做了不少貢獻(xiàn)。學(xué)習(xí)微服務(wù)架構(gòu)的導(dǎo)師,為中國微服務(wù)事業(yè)做了不少貢獻(xiàn)。成長經(jīng)歷成長經(jīng)歷: :1818歲的時候擔(dān)任主力歲的時候擔(dān)任主力JavaJava研發(fā)、項目研發(fā)、項目LeaderLeader、年薪稅后高達(dá)、年薪稅后高達(dá)2222萬左右,同年萬左右,同年1818歲歲創(chuàng)辦了螞蟻課堂創(chuàng)辦了螞蟻課堂- -在線教育平臺。在線教育平臺。1818歲的時候通過自己第一桶金,給自己父母在武漢市買了一套數(shù)百萬的房子。歲的時候通過自己第一桶金,給自己父母在武漢市買了一套數(shù)百萬的房子。1919歲的時候創(chuàng)辦了

4、歲的時候創(chuàng)辦了- -上海每特教育科技有限公司上海每特教育科技有限公司 定位互聯(lián)網(wǎng)架構(gòu)師培訓(xùn)行業(yè)。定位互聯(lián)網(wǎng)架構(gòu)師培訓(xùn)行業(yè)。2020歲的時候在線直播歲的時候在線直播JavaJava分布式和微服務(wù)培訓(xùn)課程,年收入分布式和微服務(wù)培訓(xùn)課程,年收入300300萬元。萬元。2121歲的時候其錄制的歲的時候其錄制的SpringCloud/SpringBootSpringCloud/SpringBoot課程破百萬人學(xué)習(xí)。課程破百萬人學(xué)習(xí)。余老師聯(lián)系方式余老師聯(lián)系方式:QQ:644064779 :QQ:644064779 微信微信:yushengjun644:yushengjun644MySQLMySQL高可用

5、集群環(huán)境搭建高可用集群環(huán)境搭建0101、MySQLMySQL高可用環(huán)境方案高可用環(huán)境方案0202、MySQLMySQL主從復(fù)制原理主從復(fù)制原理0303、MySQLMySQL主從復(fù)制作用主從復(fù)制作用0404、在、在LinuxLinux環(huán)境上安裝環(huán)境上安裝MySQLMySQL0505、在、在MySQLMySQL集群環(huán)境上配置主從復(fù)制集群環(huán)境上配置主從復(fù)制0606、MySQLMySQL高可用集群帶來的問題高可用集群帶來的問題0707、MySQLMySQL讀寫分離讀寫分離MyCatMyCat使用使用0808、分表分庫插件、分表分庫插件ShardingJdbcShardingJdbc0909、MySQL

6、MySQL數(shù)據(jù)庫索引底層原理(重點)數(shù)據(jù)庫索引底層原理(重點)1010、MySQLSQLMySQLSQL語句性能優(yōu)化語句性能優(yōu)化SpringBootSpringBoot動態(tài)數(shù)據(jù)源動態(tài)數(shù)據(jù)源 采用注解采用注解云數(shù)據(jù)庫云數(shù)據(jù)庫 阿里云、騰訊云阿里云、騰訊云上課內(nèi)容上課內(nèi)容1 1、什么是、什么是MyCatMyCat2 2、MyCatMyCat應(yīng)用場景應(yīng)用場景3 3、使用、使用MyCatMyCat路由實現(xiàn)讀寫分離路由實現(xiàn)讀寫分離4 4、SpringBootSpringBoot動態(tài)數(shù)據(jù)源切換原理動態(tài)數(shù)據(jù)源切換原理5.5.、SpringBootSpringBoot項目編程思維項目編程思維上課內(nèi)容上課內(nèi)容1

7、 1、數(shù)據(jù)庫集群如何保證自動增長唯一性、數(shù)據(jù)庫集群如何保證自動增長唯一性2 2、數(shù)據(jù)庫分表分庫策略、數(shù)據(jù)庫分表分庫策略3 3、MyCatMyCat分片集群策略分片集群策略4 4、MyCatMyCat分片策略原理分片策略原理上課內(nèi)容上課內(nèi)容MySQLMySQL數(shù)據(jù)庫簡單介紹數(shù)據(jù)庫簡單介紹 MySQL MySQL作為世界上使用最為廣泛的數(shù)據(jù)庫之一,免費(fèi)是其原因之一。作為世界上使用最為廣泛的數(shù)據(jù)庫之一,免費(fèi)是其原因之一。但不可忽略的是它本身的功能的確很強(qiáng)大。隨著技術(shù)的發(fā)展,在實際的但不可忽略的是它本身的功能的確很強(qiáng)大。隨著技術(shù)的發(fā)展,在實際的生產(chǎn)環(huán)境中,由單臺生產(chǎn)環(huán)境中,由單臺MySQLMySQL數(shù)

8、據(jù)庫服務(wù)器不能滿足實際的需求。此時數(shù)據(jù)數(shù)據(jù)庫服務(wù)器不能滿足實際的需求。此時數(shù)據(jù)庫集群就很好的解決了這個問題了。采用庫集群就很好的解決了這個問題了。采用MySQLMySQL分布式集群,能夠搭建一分布式集群,能夠搭建一個高并發(fā)、負(fù)載均衡的集群服務(wù)器。在此之前我們必須要保證每臺個高并發(fā)、負(fù)載均衡的集群服務(wù)器。在此之前我們必須要保證每臺MySQLMySQL服務(wù)器里的數(shù)據(jù)同步。數(shù)據(jù)同步我們可以通過服務(wù)器里的數(shù)據(jù)同步。數(shù)據(jù)同步我們可以通過MySQLMySQL內(nèi)部配置就可以輕松內(nèi)部配置就可以輕松完成,主要有主從完成,主要有主從(master slave )(master slave )復(fù)制和主主復(fù)制。復(fù)制和

9、主主復(fù)制。 螞蟻課堂數(shù)據(jù)庫螞蟻課堂數(shù)據(jù)庫 用的騰訊云數(shù)據(jù)庫用的騰訊云數(shù)據(jù)庫 5.7 5.7以上以上上課內(nèi)容上課內(nèi)容主從復(fù)制介紹主從復(fù)制介紹 相信很多學(xué)員在學(xué)習(xí)相信很多學(xué)員在學(xué)習(xí)RedisRedis的時候,已經(jīng)了解過主從復(fù)制的作用。在的時候,已經(jīng)了解過主從復(fù)制的作用。在MySQLMySQL集群環(huán)境中,可以分為主節(jié)點與從節(jié)點,通過主從復(fù)制可以實現(xiàn)數(shù)集群環(huán)境中,可以分為主節(jié)點與從節(jié)點,通過主從復(fù)制可以實現(xiàn)數(shù)據(jù)備份、故障轉(zhuǎn)移、據(jù)備份、故障轉(zhuǎn)移、MySQLMySQL集群、高可用、讀寫分離等。集群、高可用、讀寫分離等。 MySQL MySQL的主從復(fù)制是的主從復(fù)制是MySQLMySQL本身自帶的一個功能,

10、不需要額外的第三方本身自帶的一個功能,不需要額外的第三方軟件就可以實現(xiàn),其復(fù)制功能并不是軟件就可以實現(xiàn),其復(fù)制功能并不是copycopy文件來實現(xiàn)的,而是借助文件來實現(xiàn)的,而是借助binlogbinlog日志文件里面的日志文件里面的SQLSQL命令實現(xiàn)的主從復(fù)制,可以理解為我再命令實現(xiàn)的主從復(fù)制,可以理解為我再M(fèi)asterMaster端執(zhí)行了一條端執(zhí)行了一條SQLSQL命令,那么在命令,那么在SalveSalve端同樣會執(zhí)行一遍,從而達(dá)到主從端同樣會執(zhí)行一遍,從而達(dá)到主從復(fù)制的效果。復(fù)制的效果。上課內(nèi)容上課內(nèi)容主從復(fù)制原理主從復(fù)制原理 MySQL MySQL的主從復(fù)制是的主從復(fù)制是MySQLM

11、ySQL本身自帶的一個功能,不需要本身自帶的一個功能,不需要額外的第三方軟件就可以實現(xiàn),其復(fù)制功能并不是額外的第三方軟件就可以實現(xiàn),其復(fù)制功能并不是copycopy文文件來實現(xiàn)的,而是借助件來實現(xiàn)的,而是借助binlogbinlog日志文件里面的日志文件里面的SQLSQL命令實現(xiàn)命令實現(xiàn)的主從復(fù)制,可以理解為我再的主從復(fù)制,可以理解為我再M(fèi)asterMaster端執(zhí)行了一條端執(zhí)行了一條SQLSQL命令,命令,那么在那么在SalveSalve端同樣會執(zhí)行一遍,從而達(dá)到主從復(fù)制的效果。端同樣會執(zhí)行一遍,從而達(dá)到主從復(fù)制的效果。 從庫生成兩個線程,一個從庫生成兩個線程,一個I/OI/O線程,一個線程

12、,一個SQLSQL線程;線程; i/o i/o線程去請求主庫線程去請求主庫 的的binlogbinlog,并將得到的,并將得到的binlogbinlog日志寫日志寫到到relay logrelay log(中繼日志)(中繼日志) 文件中;文件中;主庫會生成一個主庫會生成一個 log dump log dump 線程,用來給從庫線程,用來給從庫 i/o i/o線程傳線程傳binlogbinlog; SQL SQL 線程,會讀取線程,會讀取relay logrelay log文件中的日志,并解析成具文件中的日志,并解析成具體操作,來實現(xiàn)主從的操作一致,而最終數(shù)據(jù)一致;體操作,來實現(xiàn)主從的操作一致,

13、而最終數(shù)據(jù)一致;上課內(nèi)容上課內(nèi)容主從復(fù)制環(huán)境配置主從復(fù)制環(huán)境配置服務(wù)器準(zhǔn)備兩臺服務(wù)器準(zhǔn)備兩臺192.168.212.202 192.168.212.202 (主的(主的MySQLMySQL)192.168.212.203 (192.168.212.203 (克隆克隆202202的的MySQL)MySQL)從從MySQLMySQL主服務(wù)器配置主服務(wù)器配置如何驗證主從復(fù)制成功?在如何驗證主從復(fù)制成功?在202202節(jié)點上創(chuàng)建節(jié)點上創(chuàng)建testtest數(shù)據(jù)庫,如果數(shù)據(jù)庫,如果203203節(jié)點能節(jié)點能夠同步過來,說明環(huán)境搭建成功啦!夠同步過來,說明環(huán)境搭建成功啦!從服務(wù)器配置從服務(wù)器配置上課內(nèi)容上課內(nèi)

14、容什么是什么是MyCatMyCat MyCAT MyCAT是一款由阿里是一款由阿里CobarCobar演變而來的用于支持?jǐn)?shù)據(jù)庫,讀寫分離、分演變而來的用于支持?jǐn)?shù)據(jù)庫,讀寫分離、分表分庫的分布式中間件。表分庫的分布式中間件。MyCATMyCAT支持支持OracleOracle、MSSQLMSSQL、MYSQLMYSQL、PGPG、DB2DB2關(guān)關(guān)系型數(shù)據(jù)庫,同時也支持系型數(shù)據(jù)庫,同時也支持MongoDBMongoDB等非關(guān)系型數(shù)據(jù)庫。等非關(guān)系型數(shù)據(jù)庫。 MyCAT MyCAT原理原理MyCATMyCAT主要是通過對主要是通過對SQLSQL的攔截,然后經(jīng)過一定規(guī)則的分片解的攔截,然后經(jīng)過一定規(guī)則的

15、分片解析、路由分析、讀寫分離分析、緩存分析等,然后將析、路由分析、讀寫分離分析、緩存分析等,然后將SQLSQL發(fā)給后端真實的發(fā)給后端真實的數(shù)據(jù)塊,并將返回的結(jié)果做適當(dāng)處理返回給客戶端。數(shù)據(jù)塊,并將返回的結(jié)果做適當(dāng)處理返回給客戶端。官方網(wǎng)站官方網(wǎng)站: : 上課內(nèi)容上課內(nèi)容基于基于MyCatMyCat實現(xiàn)讀寫分離實現(xiàn)讀寫分離 讀寫分離,簡單地說是把對數(shù)據(jù)庫的讀和寫操作分開,以對應(yīng)不同的數(shù)讀寫分離,簡單地說是把對數(shù)據(jù)庫的讀和寫操作分開,以對應(yīng)不同的數(shù)據(jù)庫服務(wù)器。主數(shù)據(jù)庫提供寫操作,從數(shù)據(jù)庫提供讀操作,這樣能有效據(jù)庫服務(wù)器。主數(shù)據(jù)庫提供寫操作,從數(shù)據(jù)庫提供讀操作,這樣能有效地減輕單臺數(shù)據(jù)庫的壓力。主數(shù)

16、據(jù)庫進(jìn)行寫操作后,數(shù)據(jù)及時同步到所地減輕單臺數(shù)據(jù)庫的壓力。主數(shù)據(jù)庫進(jìn)行寫操作后,數(shù)據(jù)及時同步到所讀的數(shù)據(jù)庫,盡可能保證讀、寫數(shù)據(jù)庫的數(shù)據(jù)一致,比如讀的數(shù)據(jù)庫,盡可能保證讀、寫數(shù)據(jù)庫的數(shù)據(jù)一致,比如MySQLMySQL的主從復(fù)的主從復(fù)制、制、OracleOracle的的data guarddata guard、SQL ServerSQL Server的復(fù)制訂閱等。的復(fù)制訂閱等。 畫圖演示畫圖演示 上課內(nèi)容上課內(nèi)容LinuxLinux環(huán)境安裝環(huán)境安裝MyCatMyCat實現(xiàn)讀寫分離實現(xiàn)讀寫分離1 1、上傳安裝、上傳安裝Mycat-server-1.6.5-release-2018012222003

17、3-linux.tarMycat-server-1.6.5-release-20180122220033-linux.tar2 2、解壓安裝包、解壓安裝包tar zxvf tar zxvf 3 3、配置、配置schema.xml schema.xml 和和server.xmlserver.xml4 4、客戶端連接端口號、客戶端連接端口號: 8066: 8066配置文件介紹配置文件介紹: :上課內(nèi)容上課內(nèi)容文件說明server.xmlMycat的配置文件,設(shè)置賬號、參數(shù)等schema.xmlMycat對應(yīng)的物理數(shù)據(jù)庫和數(shù)據(jù)庫表的配置rule.xmlMycat分片(分庫分表)規(guī)則LinuxLinu

18、x環(huán)境安裝環(huán)境安裝MyCatMyCat實現(xiàn)讀寫分離實現(xiàn)讀寫分離1 1、上傳安裝、上傳安裝Mycat-server-1.6.5-release-20180122220033-linux.tarMycat-server-1.6.5-release-20180122220033-linux.tar2 2、解壓安裝包、解壓安裝包tar zxvf tar zxvf 3 3、配置、配置schema.xml schema.xml 和和server.xmlserver.xml4 4、客戶端連接端口號、客戶端連接端口號: 8066: 8066配置文件介紹配置文件介紹: :上課內(nèi)容上課內(nèi)容文件說明server.x

19、mlMycat的配置文件,設(shè)置賬號、參數(shù)等schema.xmlMycat對應(yīng)的物理數(shù)據(jù)庫和數(shù)據(jù)庫表的配置rule.xmlMycat分片(分庫分表)規(guī)則 詳細(xì)配置文件信息查看資料詳細(xì)配置文件信息查看資料LinuxLinux環(huán)境安裝環(huán)境安裝MyCatMyCat實現(xiàn)讀寫分離實現(xiàn)讀寫分離1 1、進(jìn)入、進(jìn)入binbin目錄目錄 啟動啟動MyCat ./mycat start MyCat ./mycat start 停止停止MyCat ./mycat stopMyCat ./mycat stop2 2、查看、查看/usr/local/mycat/logs wrapper.log/usr/local/myc

20、at/logs wrapper.log日志日志 如果是為如果是為successfully successfully 則啟動成功則啟動成功關(guān)閉防火墻關(guān)閉防火墻:systemctl stop firewalld.service:systemctl stop firewalld.service只可讀的賬號只可讀的賬號 user user user user 端口號端口號80668066可讀可寫的賬號可讀可寫的賬號 root 123456 root 123456 端口號端口號80668066上課內(nèi)容上課內(nèi)容SpringBootSpringBoot項目整合動態(tài)數(shù)據(jù)源項目整合動態(tài)數(shù)據(jù)源( (讀寫分離讀寫分

21、離) )1.1.配置多個數(shù)據(jù)源,根據(jù)業(yè)務(wù)需求訪問不同的數(shù)據(jù),指定對應(yīng)的策略:配置多個數(shù)據(jù)源,根據(jù)業(yè)務(wù)需求訪問不同的數(shù)據(jù),指定對應(yīng)的策略:增加,刪除,修改操作訪問對應(yīng)數(shù)據(jù),查詢訪問對應(yīng)數(shù)據(jù),不同數(shù)據(jù)庫增加,刪除,修改操作訪問對應(yīng)數(shù)據(jù),查詢訪問對應(yīng)數(shù)據(jù),不同數(shù)據(jù)庫做好的數(shù)據(jù)一致性的處理。由于此方法相對易懂,簡單,不做過多介紹。做好的數(shù)據(jù)一致性的處理。由于此方法相對易懂,簡單,不做過多介紹。 2. 2. 動態(tài)切換數(shù)據(jù)源,根據(jù)配置的文件,業(yè)務(wù)動態(tài)切換訪問的數(shù)據(jù)庫動態(tài)切換數(shù)據(jù)源,根據(jù)配置的文件,業(yè)務(wù)動態(tài)切換訪問的數(shù)據(jù)庫: :此此方案通過方案通過SpringSpring的的AOPAOP,AspactJAs

22、pactJ來實現(xiàn)動態(tài)織入,通過編程繼承實現(xiàn)來實現(xiàn)動態(tài)織入,通過編程繼承實現(xiàn)SpringSpring中的中的AbstractRoutingDataSource,AbstractRoutingDataSource,來實現(xiàn)數(shù)據(jù)庫訪問的動態(tài)切換,來實現(xiàn)數(shù)據(jù)庫訪問的動態(tài)切換,不僅可以方便擴(kuò)展,不影響現(xiàn)有程序,而且對于此功能的增刪也比較容不僅可以方便擴(kuò)展,不影響現(xiàn)有程序,而且對于此功能的增刪也比較容易。易。 3. 3. 通過通過mycatmycat來實現(xiàn)讀寫分離來實現(xiàn)讀寫分離: :使用使用mycatmycat提供的讀寫分離功能,提供的讀寫分離功能,mycatmycat連連接多個數(shù)據(jù)庫,數(shù)據(jù)源只需要連接接多

23、個數(shù)據(jù)庫,數(shù)據(jù)源只需要連接mycatmycat,對于開發(fā)人員而言他還是連接,對于開發(fā)人員而言他還是連接了一個數(shù)據(jù)庫了一個數(shù)據(jù)庫( (實際是實際是mysqlmysql的的mycatmycat中間件中間件) ),而且也不需要根據(jù)不同,而且也不需要根據(jù)不同 業(yè)業(yè)務(wù)來選擇不同的庫,這樣就不會有多余的代碼產(chǎn)生。務(wù)來選擇不同的庫,這樣就不會有多余的代碼產(chǎn)生。詳細(xì)參考配置詳細(xì)參考配置上課內(nèi)容上課內(nèi)容動態(tài)數(shù)據(jù)源核心配置動態(tài)數(shù)據(jù)源核心配置在在Spring 2.0.1Spring 2.0.1中引入了中引入了AbstractRoutingDataSource, AbstractRoutingDataSource,

24、該類充當(dāng)了該類充當(dāng)了DataSourceDataSource的路由中介的路由中介, , 能有在運(yùn)行時能有在運(yùn)行時, , 根據(jù)某種根據(jù)某種keykey值來動態(tài)切換到真值來動態(tài)切換到真正的正的DataSourceDataSource上。上。1.1.項目中需要集成多個數(shù)據(jù)源分別為讀和寫的數(shù)據(jù)源,綁定不同的項目中需要集成多個數(shù)據(jù)源分別為讀和寫的數(shù)據(jù)源,綁定不同的keykey。2.2.采用采用AOPAOP技術(shù)進(jìn)行攔截業(yè)務(wù)邏輯層方法,判斷方法的前綴是否需要寫或技術(shù)進(jìn)行攔截業(yè)務(wù)邏輯層方法,判斷方法的前綴是否需要寫或者讀的操作者讀的操作3.3.如果方法的前綴是寫的操作的時候,直接切換為寫的數(shù)據(jù)源,反之切如果方

25、法的前綴是寫的操作的時候,直接切換為寫的數(shù)據(jù)源,反之切換為讀的數(shù)據(jù)源換為讀的數(shù)據(jù)源也可以自己定義注解進(jìn)行封裝也可以自己定義注解進(jìn)行封裝動態(tài)數(shù)據(jù)源與多數(shù)數(shù)據(jù)源區(qū)別動態(tài)數(shù)據(jù)源與多數(shù)數(shù)據(jù)源區(qū)別多數(shù)據(jù)源多數(shù)據(jù)源-以分包形式以分包形式動態(tài)數(shù)據(jù)在動態(tài)數(shù)據(jù)在jvmjvm進(jìn)行不斷地進(jìn)行切換進(jìn)行不斷地進(jìn)行切換上課內(nèi)容上課內(nèi)容數(shù)據(jù)庫集群如何考慮數(shù)據(jù)庫自增唯一性數(shù)據(jù)庫集群如何考慮數(shù)據(jù)庫自增唯一性在數(shù)據(jù)庫集群環(huán)境下,默認(rèn)自增方式存在問題,因為都是從在數(shù)據(jù)庫集群環(huán)境下,默認(rèn)自增方式存在問題,因為都是從1 1開始自增,可能會存在開始自增,可能會存在重復(fù),應(yīng)該設(shè)置每臺節(jié)點自增步長不同。重復(fù),應(yīng)該設(shè)置每臺節(jié)點自增步長不同。查

26、詢自增的步長查詢自增的步長SHOW VARIABLES LIKE auto_inc%SHOW VARIABLES LIKE auto_inc%修改自增的步長修改自增的步長SET auto_increment_increment=10;SET auto_increment_increment=10;修改起始值修改起始值SET auto_increment_offset=5;SET auto_increment_offset=5;假設(shè)有兩臺假設(shè)有兩臺mysqlmysql數(shù)據(jù)庫服務(wù)器數(shù)據(jù)庫服務(wù)器節(jié)點自增節(jié)點自增 1 3 5 7 9 11 . 1 3 5 7 9 11 .節(jié)點自增節(jié)點自增 2 4 6

27、8 10 12 . 2 4 6 8 10 12 .注意注意: :在最開始設(shè)置好了每臺節(jié)點自增方式步長后,確定好了在最開始設(shè)置好了每臺節(jié)點自增方式步長后,確定好了mysqlmysql集群數(shù)量后,無集群數(shù)量后,無法擴(kuò)展新的法擴(kuò)展新的mysqlmysql,不然生成步長的規(guī)則可能會發(fā)生變化。,不然生成步長的規(guī)則可能會發(fā)生變化。上課內(nèi)容上課內(nèi)容數(shù)據(jù)庫分表分庫策略數(shù)據(jù)庫分表分庫策略數(shù)據(jù)庫分表分庫原則遵循數(shù)據(jù)庫分表分庫原則遵循 垂直拆分與水平拆分垂直拆分與水平拆分垂直拆分就是根據(jù)不同的業(yè)務(wù),分為不同的數(shù)據(jù)庫,比如會員數(shù)據(jù)庫、訂單數(shù)據(jù)庫、垂直拆分就是根據(jù)不同的業(yè)務(wù),分為不同的數(shù)據(jù)庫,比如會員數(shù)據(jù)庫、訂單數(shù)據(jù)庫

28、、支付數(shù)據(jù)庫等,垂直拆分在大型電商系統(tǒng)中用的非常常見。支付數(shù)據(jù)庫等,垂直拆分在大型電商系統(tǒng)中用的非常常見。優(yōu)點:優(yōu)點: 拆分后業(yè)務(wù)清晰,拆分規(guī)則明確,系統(tǒng)之間整合或擴(kuò)展容易。拆分后業(yè)務(wù)清晰,拆分規(guī)則明確,系統(tǒng)之間整合或擴(kuò)展容易。缺點:缺點:部分業(yè)務(wù)表無法部分業(yè)務(wù)表無法joinjoin,只能通過接口方式解決,提高了系統(tǒng)復(fù)雜度存在分布式事務(wù),只能通過接口方式解決,提高了系統(tǒng)復(fù)雜度存在分布式事務(wù)問題。問題。上課內(nèi)容上課內(nèi)容數(shù)據(jù)庫分表分庫策略數(shù)據(jù)庫分表分庫策略數(shù)據(jù)庫分表分庫原則遵循數(shù)據(jù)庫分表分庫原則遵循 垂直拆分與水平拆分垂直拆分與水平拆分 垂直拆分是把不同的表拆到不同的數(shù)據(jù)庫中,而水平拆分是把同一個

29、表拆到不同的垂直拆分是把不同的表拆到不同的數(shù)據(jù)庫中,而水平拆分是把同一個表拆到不同的數(shù)據(jù)庫中。數(shù)據(jù)庫中。 相對于垂直拆分,水平拆分不是將表的數(shù)據(jù)做分類,而是按照某個字段的某種規(guī)相對于垂直拆分,水平拆分不是將表的數(shù)據(jù)做分類,而是按照某個字段的某種規(guī)則來分散到多個庫之中,每個表中包含一部分?jǐn)?shù)據(jù)。簡單來說,我們可以將數(shù)據(jù)的則來分散到多個庫之中,每個表中包含一部分?jǐn)?shù)據(jù)。簡單來說,我們可以將數(shù)據(jù)的水平切分理解為是按照數(shù)據(jù)行的切分,就是將表中水平切分理解為是按照數(shù)據(jù)行的切分,就是將表中 的某些行切分到一個數(shù)據(jù)庫,而的某些行切分到一個數(shù)據(jù)庫,而另外的某些行又切分到其他的數(shù)據(jù)庫中,主要有分表,分庫兩種模式另外

30、的某些行又切分到其他的數(shù)據(jù)庫中,主要有分表,分庫兩種模式 該方式提高了系統(tǒng)的穩(wěn)定性跟負(fù)載能力,但是跨庫該方式提高了系統(tǒng)的穩(wěn)定性跟負(fù)載能力,但是跨庫joinjoin性能較差。性能較差。畫圖演示畫圖演示上課內(nèi)容上課內(nèi)容使用使用MyCatMyCat實現(xiàn)水平分片策略實現(xiàn)水平分片策略 MyCat MyCat支持支持1010種分片策略種分片策略1 1、求模算法、求模算法2 2、分片枚舉、分片枚舉3 3、范圍約定、范圍約定4 4、日期指定、日期指定5 5、固定分片、固定分片hashhash算法算法6 6、通配取模、通配取模7 7、ASCIIASCII碼求模通配碼求模通配8 8、編程指定、編程指定9 9、字符串拆分、字符串拆分hashhash解析解析詳細(xì)詳細(xì): document/mycat-definitive-guide.pdf: document/mycat-definitive-guide.pdf上課內(nèi)容上課內(nèi)容使用使用MyCatMyCat實現(xiàn)水平分片策略實現(xiàn)水平分片策略分片枚舉這種規(guī)則適用于特定的場景,比如有些業(yè)務(wù)需要按照省份或區(qū)縣來做保存,分片枚舉這種規(guī)則適用于特定的場景,比如有些業(yè)務(wù)需要按照省份或區(qū)縣來做保存,而全國的省份區(qū)縣固定的,這類業(yè)務(wù)使用這一規(guī)則。配置如下而全國的省份

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論