<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          分庫(kù)分表,可能真的要退出歷史舞臺(tái)了!

          共 2009字,需瀏覽 5分鐘

           ·

          2023-01-12 20:48


          即使是不懂編程的玩家,在對(duì)比 NAS 的時(shí)候,也會(huì)兩眼放光,考慮很多因素,比如 RAID 級(jí)別、速度、易用程度等。作為時(shí)時(shí)刻刻與代碼打交道的我們,更需要關(guān)注數(shù)據(jù)的存取問(wèn)題。

          一開(kāi)始,開(kāi)箱即用的 MySQL,一定是企業(yè)的首選。不僅僅因?yàn)橛玫娜硕啵匾氖巧鷳B(tài)成熟。要工具有工具,要人有人。對(duì)于老板來(lái)說(shuō),員工看著不爽,可以隨時(shí)辭退,是一個(gè)非常理想的狀態(tài)。

          但是,沒(méi)有胸懷的老板,干的一定不會(huì)長(zhǎng)久,因?yàn)槿绻虅?wù)會(huì)吹、老板會(huì)忽悠,業(yè)務(wù)會(huì)飛速發(fā)展(雖然現(xiàn)在這種機(jī)會(huì)比較少了)。對(duì)于 MySQL 來(lái)說(shuō),很快就會(huì)遇到問(wèn)題。

          這個(gè)時(shí)候,就需要一些比只會(huì)用 MySQL 級(jí)別高一些的人才,來(lái)配合老板圓夢(mèng)。

          是時(shí)候了,由單機(jī) MySQL 向分布式發(fā)展了。

          單機(jī) MySQL 面臨很多問(wèn)題。

          1. 單表太大,比如超過(guò) 500w,查詢就非常吃力
          2. 單庫(kù)太大,各種資源告急
          3. 讀請(qǐng)求太高,嚴(yán)重影響寫(xiě)請(qǐng)求

          對(duì)此,一堆概念也是騰空而出,比如分庫(kù)分表、讀寫(xiě)分離等。

          很長(zhǎng)時(shí)間以來(lái),國(guó)內(nèi)互聯(lián)網(wǎng)的做法普遍是采用加入一個(gè)中間件的方式來(lái)解決,但隨著分布式數(shù)據(jù)庫(kù)的技術(shù)越來(lái)越成熟,這些魔法逐漸下沉到它本應(yīng)該解決的層面--數(shù)據(jù)庫(kù)實(shí)現(xiàn)層。

          留給分庫(kù)分表技術(shù)的時(shí)間,已經(jīng)不多了,它的存量市場(chǎng)越來(lái)越少了。分庫(kù)分表技術(shù),退出歷史舞臺(tái),也是遲早的事情了。

          解決上面三個(gè)單機(jī) MySQL 問(wèn)題,有很多種切入層面。比如,你簡(jiǎn)單的在 MyBatis 或者 JPA 之上使用 AOP 或者攔截器封裝一層,也可以實(shí)現(xiàn),這也是最傻的方式。

          再進(jìn)一步,就可以采用在 JDBC 之上的驅(qū)動(dòng)層來(lái)實(shí)現(xiàn),把分庫(kù)分表的路由維護(hù)在內(nèi)存里,通過(guò)重寫(xiě)的 DataSource、Connection、Statment、ResultSet等,對(duì)業(yè)務(wù)進(jìn)行無(wú)侵入的改進(jìn)。但可惜的是,我們還必須要維護(hù)與邏輯表相對(duì)應(yīng)的物理表,而且功能也是閹割的,不確定性依然不小。更要命的是,JDBC 只支持 Java,對(duì)于某些公司來(lái)說(shuō),就非常的不適用。

          再就是中間件的傳統(tǒng)模式,Proxy。把自己偽裝成一個(gè)MySQL Server,接受 Client 的請(qǐng)求。至于它后面怎么去操作真實(shí)的數(shù)據(jù)庫(kù),你都不需要知道。但 Proxy 本身也是一套服務(wù),你有運(yùn)維成本在里面,同時(shí)功能依然是閹割的。

          框架層,驅(qū)動(dòng)層,代理層,在過(guò)去很長(zhǎng)一段時(shí)間里,有無(wú)數(shù)的互聯(lián)網(wǎng)公司前赴后繼的試水,從 TDDL、Cobar,到 MyCat、ShardingSphere,各種層面的中間件也是層出不窮。但最近幾年,這種爭(zhēng)相斗艷的場(chǎng)面逐漸不再,到最后剩下來(lái)的,也就ShardingSphere這一枝獨(dú)秀了。

          是問(wèn)題不存在了么?不,正好相反,問(wèn)題越來(lái)越嚴(yán)重。并不是問(wèn)題消失了,而是它被轉(zhuǎn)化成其他解決方式了。

          拋開(kāi)關(guān)系型數(shù)據(jù)庫(kù)不說(shuō),很久之前,類(lèi)似于 ElasticSearch、Cassandra這樣的 NoSQL 存儲(chǔ),分片和副本的概念,就已經(jīng)非常成熟了,而且它們是內(nèi)置的,并不需要 DBA 去人工維護(hù)它們的物理位置。

          對(duì)于關(guān)系型數(shù)據(jù)庫(kù)來(lái)說(shuō),走向分布式也終將成為必然。隨著 Raft 等協(xié)議應(yīng)用越來(lái)越廣泛,分布式數(shù)據(jù)庫(kù)的可靠性也逐漸得到了保證。如果你以前因?yàn)槭聞?wù)問(wèn)題而拒絕采用某些 NoSQL 產(chǎn)品,那么如今完全兼容 MySQL 的分布式數(shù)據(jù)庫(kù),你沒(méi)有理由再說(shuō) No。

          云廠商,直接提供了像Aurora、PolarDB之類(lèi)的MySQL增強(qiáng),更有類(lèi)似 TiDB、OceanBase 這樣純粹的分布式數(shù)據(jù)庫(kù),越來(lái)越多的業(yè)務(wù)走向了這個(gè)終途。當(dāng)你的團(tuán)隊(duì)加班加點(diǎn)驗(yàn)證著分庫(kù)分表中間件的時(shí)候,卻發(fā)現(xiàn)其實(shí)換個(gè)兼容的存儲(chǔ)就能玩得轉(zhuǎn),你會(huì)怎么選,簡(jiǎn)直不用再多說(shuō)。

          當(dāng)然,一旦你選用了分布式數(shù)據(jù)庫(kù),以前的 DBA 經(jīng)驗(yàn)可能就不管用了,比如說(shuō)索引及其二級(jí)索引。你的團(tuán)隊(duì)不得不學(xué)習(xí)新的知識(shí),來(lái)應(yīng)對(duì)分布式環(huán)境。

          但這些都是陣痛,長(zhǎng)遠(yuǎn)看來(lái),分布式數(shù)據(jù)庫(kù)是趨勢(shì),而分庫(kù)分表中間件只能吃存量。

          當(dāng)你的業(yè)務(wù)有了常年累積的復(fù)雜數(shù)據(jù),你可能會(huì)采用復(fù)雜的分庫(kù)分表組件,但如果你的業(yè)務(wù)比較新,可預(yù)見(jiàn)的未來(lái)會(huì)有大量數(shù)據(jù),那一個(gè)分布式數(shù)據(jù)庫(kù)可能是最合適的。

          分庫(kù)分表中間件并不是消失了。它搖身一變,變成了分布式數(shù)據(jù)庫(kù)的一部分。

          你可能會(huì)聽(tīng)到很多切到分布式數(shù)據(jù)庫(kù),又從分布式數(shù)據(jù)庫(kù)切回到 MySQL 的案例,這屬于想吃螃蟹但并沒(méi)有吃到。目前來(lái)看,分布式數(shù)據(jù)庫(kù)越來(lái)越穩(wěn)定,生態(tài)建設(shè)也越來(lái)越好。而分庫(kù)分表,則屬于存量業(yè)務(wù),終將會(huì)退出歷史的舞臺(tái)。

          程序汪資料鏈接

          程序汪接的7個(gè)私活都在這里,經(jīng)驗(yàn)整理

          Java項(xiàng)目分享  最新整理全集,找項(xiàng)目不累啦 07版

          堪稱(chēng)神級(jí)的Spring Boot手冊(cè),從基礎(chǔ)入門(mén)到實(shí)戰(zhàn)進(jìn)階

          臥槽!字節(jié)跳動(dòng)《算法中文手冊(cè)》火了,完整版 PDF 開(kāi)放下載!

          臥槽!阿里大佬總結(jié)的《圖解Java》火了,完整版PDF開(kāi)放下載!

          字節(jié)跳動(dòng)總結(jié)的設(shè)計(jì)模式 PDF 火了,完整版開(kāi)放下載!

          歡迎添加程序汪個(gè)人微信 itwang009  進(jìn)粉絲群或圍觀朋友圈

          瀏覽 44
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  在线观看麻豆免费视频 | 色播影院怡红院 | 国产一卡二卡在线 | 好看乱伦网站 | 精品免费囯产一区二区三区四区视频 |