{eval=Array;=+count(Array);}

亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

問答專欄Q & A COLUMN

Facebook用戶量十分龐大,為什么還使用MySQL數(shù)據(jù)庫(kù)?

qylostqylost 回答0 收藏1
收藏問題

10條回答

jimhs

jimhs

回答于2022-06-28 14:37

盡管Facebook使用MySQL,但它們并不是一成不變的使用它。 事實(shí)上,他們的團(tuán)隊(duì)已經(jīng)提交了許多MySQL核心和Innodb插件的高性能增強(qiáng)。 他們的主要重點(diǎn)是增加性能計(jì)數(shù)器到Innodb。 其他更改集中在IO子系統(tǒng)上,包括以下新功能:

1 innodb_io_capacity:設(shè)置服務(wù)器的IO容量以確定后臺(tái)IO的速率限制

2 innodb_read_io_threads, innodb_write_io_threads:設(shè)置后臺(tái)IO線程

3 innodb_max_merged_io:設(shè)置可能合并到一個(gè)大IO請(qǐng)求中的相鄰IO請(qǐng)求的最大數(shù)量

Facebook使用MySQL作為鍵值存儲(chǔ),其中數(shù)據(jù)隨機(jī)分布在一大組邏輯實(shí)例中。 這些邏輯實(shí)例分散在物理節(jié)點(diǎn)之間,負(fù)載均衡在物理節(jié)點(diǎn)級(jí)完成。 Facebook已經(jīng)開發(fā)了一個(gè)分區(qū)方案,其中全局ID被分配給所有的用戶數(shù)據(jù)。 他們也有一個(gè)自定義的歸檔方案,它基于每個(gè)用戶的頻繁和最近的數(shù)據(jù)。 大部分?jǐn)?shù)據(jù)是隨機(jī)分布的。 令人驚訝的是,據(jù)傳Facebook有1800個(gè)MySQL服務(wù)器,但只有3個(gè)全職DBA

Facebook主要將MySQL用于結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ),例如墻貼,用戶信息等。這些數(shù)據(jù)在各個(gè)數(shù)據(jù)中心之間復(fù)制。 對(duì)于blob存儲(chǔ)(照片,視頻等),F(xiàn)acebook使用一個(gè)自定義的解決方案,涉及外部的CDN和內(nèi)部的NFS

同樣重要的是,F(xiàn)acebook大量使用Memcache,這是一種內(nèi)存緩存系統(tǒng),通過在RAM中緩存數(shù)據(jù)和對(duì)象來(lái)加速動(dòng)態(tài)數(shù)據(jù)庫(kù)驅(qū)動(dòng)的網(wǎng)站,以減少閱讀時(shí)間。 Memcache是Facebook的主要緩存形式,大大減少了數(shù)據(jù)庫(kù)的負(fù)載。 擁有一個(gè)緩存系統(tǒng)可以使Facebook的速度與調(diào)用數(shù)據(jù)一樣快。 如果不需要訪問數(shù)據(jù)庫(kù),則只需根據(jù)用戶標(biāo)識(shí)從緩存中獲取數(shù)據(jù)

所以,“Facebook使用什么數(shù)據(jù)庫(kù)”似乎是一個(gè)簡(jiǎn)單的問題,你可以看到他們已經(jīng)添加了各種其他系統(tǒng),使其真正的具有網(wǎng)絡(luò)可擴(kuò)展性。 但是,仍然可以自由地使用這樣一個(gè)觀點(diǎn):“MySQL和Oracle或者M(jìn)S SQL Server一樣好或者更好,因?yàn)榫退阒挥蠪acebook使用它,它也有5億用戶!”

評(píng)論0 贊同0
  •  加載中...
BoYang

BoYang

回答于2022-06-28 14:37

謝邀。我分享下他們MySQL運(yùn)維優(yōu)化的邏輯,大家可以借鑒參考一下。本質(zhì)上講,他們用的是修改后的MySQL,不是原生MySQL。Facebook創(chuàng)辦以來(lái)就一直在使用MySQL數(shù)據(jù)庫(kù),也隨著數(shù)據(jù)量的增大而不斷改進(jìn)他們的自有MySQL,目前已經(jīng)可以輕松支撐來(lái)自20多億用戶的數(shù)據(jù)量。

所以Facebook優(yōu)化MySQL的經(jīng)驗(yàn)我覺得有很多借鑒學(xué)習(xí)之處,有相關(guān)數(shù)據(jù)庫(kù)經(jīng)驗(yàn)也可以在評(píng)論區(qū)討論探討,互相學(xué)習(xí)學(xué)習(xí)。

1.每臺(tái)機(jī)器都使用多實(shí)例的模型,每個(gè)機(jī)器放多個(gè)實(shí)例,每個(gè)實(shí)例放多個(gè)DB,多實(shí)例之間沒有資源隔離,充分發(fā)揮實(shí)例間的最大性能。

2.將大部分核心業(yè)務(wù)引擎切換到MyRocks,不改變服務(wù)器配置大概可以節(jié)省一半服務(wù)器資源。

3.主從結(jié)構(gòu)采用基于GTID的一主多從結(jié)構(gòu),外加一個(gè)基于lossless semi-sync機(jī)制的mysqlbinlog實(shí)現(xiàn)的binlog server。

4.所有的備份都是基于mysqldump實(shí)現(xiàn),可以無(wú)需備份索引,只備份數(shù)據(jù),而且備份文件壓縮比高,更節(jié)省磁盤空間,通過改進(jìn)了的mysqldump,備份過程中還可以進(jìn)行額外壓縮。當(dāng)然備份時(shí)也會(huì)控制并行備份的數(shù)量,避免影響在線業(yè)務(wù)性能。

5.快速部署從庫(kù)可使用xtrabackup在現(xiàn)有存活的SLAVE實(shí)例上備份,也可在主庫(kù)上發(fā)起備份,再利用WDT(或者是BT)協(xié)議傳輸?shù)疆惖?,用于拉起從?kù)。

總而言之,F(xiàn)acebook在優(yōu)化MySQL方面做了很多努力,也提交了很多優(yōu)秀的Innodb插件來(lái)大大提高了MySQL主從集群的性能。而且有傳聞稱,F(xiàn)acebook擁有大約1800臺(tái)MySQL服務(wù)器,內(nèi)部卻只有三名數(shù)據(jù)庫(kù)管理員(DBA)。這有點(diǎn)匪夷所思,不過也側(cè)面說明Facebook確實(shí)在MySQL優(yōu)化方面有著非常不錯(cuò)的效果。


如果你對(duì)學(xué)習(xí)人工智能和科技新聞感興趣,歡迎訂閱我的頭條號(hào)。我會(huì)在這里發(fā)布所有與科技、科學(xué)以及機(jī)器學(xué)習(xí)有關(guān)的有趣文章。偶爾也回答有趣的問題,有問題可隨時(shí)在評(píng)論區(qū)回復(fù)和討論,看到即回。

(碼字不易,若文章對(duì)你幫助可點(diǎn)贊支持~)

評(píng)論0 贊同0
  •  加載中...
sumory

sumory

回答于2022-06-28 14:37

看了這么多回答,作為一個(gè)當(dāng)時(shí)參與ucloud去lOE過程的人,聊聊個(gè)人看法。

ucloud在定下2014目標(biāo)上市時(shí),內(nèi)部就開始發(fā)起去IOE運(yùn)動(dòng),2013年收尾。全球上市意味著要經(jīng)過全球檢驗(yàn),要合法合規(guī)(至少大面上要這樣)。首要過的,就是專利(如現(xiàn)在高通,每部用它專利的手機(jī)都得給它交錢)。隨ucloud商業(yè)化程度的進(jìn)行,馬云就放眼全球。當(dāng)時(shí)核心訴求是,可控性(不能將自己的咽喉放在別人的手上)。記得我當(dāng)時(shí)還問過為什么會(huì)發(fā)起這么大成本的去IOE化,得到的回答是IOE不可控(比如orocle,發(fā)生一個(gè)問題可能幾天之后才得到響應(yīng),對(duì)于快速發(fā)展的互聯(lián)網(wǎng)來(lái)說,是不可接受的)。從互聯(lián)網(wǎng)商業(yè)角度來(lái)講,錢不是關(guān)鍵的,時(shí)間、流量才是王者?;ヂ?lián)網(wǎng)服務(wù)要求穩(wěn)定、快速解決大于一切。這也是現(xiàn)在分布式的核心訴求(大數(shù)據(jù)也是)。能用錢解決的問題都不是問題,比如互聯(lián)網(wǎng)企業(yè)前期大部分是巨額虧損的(如BAT,滴滴,共享單車…),它們要的是快速占領(lǐng)市場(chǎng)。在此前題下,lOE,有兩大致命傷:

1,出問題后解決的效率太低(lOE作為穩(wěn)定性產(chǎn)品,更新節(jié)奏是比較慢的,并且因?yàn)椴婚_源,意味著它是黑箱,遇到問題你連找臨時(shí)解決的方案都很難,等到廠商問題解決,黃花菜都涼了),

2,不可控?;ヂ?lián)網(wǎng)是快速試錯(cuò)的過程,今天穩(wěn)定的東西可能明天就滿足不了需求了。指望廠商跟進(jìn),就會(huì)錯(cuò)過大量的時(shí)機(jī)(這也是現(xiàn)在大數(shù)據(jù)技術(shù)快速發(fā)展和各大互聯(lián)網(wǎng)企業(yè)投入巨大資源自研的原因)。數(shù)據(jù)庫(kù)作為互聯(lián)網(wǎng)核心部件(數(shù)據(jù)就是金錢),命脈必須掌握在自己手里。開源推進(jìn)了現(xiàn)代互聯(lián)網(wǎng)的快速發(fā)展,技術(shù)不再是少數(shù)企業(yè)的專利,開源能集結(jié)全球人才的聰明才智,能夠快速解決問題,而不是局限于等待少數(shù)人去改變。開源意味著可預(yù)測(cè),可控制、可把它作為基礎(chǔ)發(fā)展為最適合自身業(yè)務(wù)的東西。

其它:1,免費(fèi),降低成本。2,可研究,人才眾多。3,實(shí)時(shí)大數(shù)據(jù),批量。

現(xiàn)在各大互聯(lián)網(wǎng)公司已根據(jù)自身業(yè)務(wù)特點(diǎn),已經(jīng)在開源基礎(chǔ)上研發(fā)了大量的定制數(shù)據(jù)庫(kù)。

從創(chuàng)業(yè)起步時(shí)角度來(lái)講,確實(shí)能省一些是一些,MySQL夠用了。發(fā)展大了之后,做分布式集群話,穩(wěn)定度和速度、靈活性都大大大于lOE,lOE也就沒那么必要了。4,去lOE還能大幅度培養(yǎng)自己的技術(shù)團(tuán)隊(duì),拓展未來(lái)的想象力,何樂而不為。

反之,看先前和現(xiàn)在的國(guó)有企業(yè)(如銀行),動(dòng)不動(dòng)就停機(jī)維護(hù),以前轉(zhuǎn)個(gè)帳都要24小時(shí)甚至更長(zhǎng)(因?yàn)樗鼈兪菈艛啵鼈儾蝗卞X,一體化都是最高端的lOE服務(wù),所以我們無(wú)可奈何)

,這種情況若發(fā)生在互聯(lián)網(wǎng)身上,那可能就是生死攸關(guān)的事情——用戶的敏感度大大大于傳統(tǒng)的企業(yè)。

從上情況可知,選擇去lOE是必然,甚至,互聯(lián)網(wǎng)企業(yè)發(fā)展到一定規(guī)模,自研是必然(自研當(dāng)然需要建立在合法合規(guī)上)。

企業(yè)發(fā)展到一定程度,有3個(gè)最重要的:1,企業(yè)架構(gòu)(自動(dòng)化機(jī)器)2,法律風(fēng)險(xiǎn)(投入比會(huì)大大增加,比如現(xiàn)在ucloud遇到的情況)3,門檻(核心技術(shù),核心競(jìng)爭(zhēng)力)

個(gè)人淺見,共同交流。

評(píng)論0 贊同0
  •  加載中...
gclove

gclove

回答于2022-06-28 14:37

Facebook最初誕生的時(shí)候并不是大公司,所以整個(gè)數(shù)據(jù)底層都是放在MY SQL上,因?yàn)镸Y SQL不需要授權(quán)費(fèi),對(duì)facebook是最劃算的,而在發(fā)展壯大后,MY SQL同樣夠用,當(dāng)然會(huì)一直用下去了。

為什么Facebook還會(huì)用MY SQL?

1.MySQL早期就是為PC互聯(lián)網(wǎng)服務(wù)的,而且是免費(fèi)開源的,F(xiàn)acebook早期是學(xué)生創(chuàng)業(yè),跟本沒錢,而且Facebook最開始是PC產(chǎn)品,用MY SQL是自然的。

2.用MY SQL更省錢。除了MY SQL還有商業(yè)數(shù)據(jù),比如Oracle數(shù)據(jù)庫(kù),但是商用數(shù)據(jù)庫(kù)價(jià)格非常的貴,比如官方報(bào)價(jià)一般25/CPU核,以及采購(gòu)小型機(jī)一般80-120萬(wàn)/臺(tái),存儲(chǔ)設(shè)備一般500萬(wàn)一套,但是Facebook現(xiàn)在有近萬(wàn)臺(tái)的服務(wù)器,這是一筆極為龐大的資金。

3.常規(guī)數(shù)據(jù)庫(kù)的集中式數(shù)據(jù)庫(kù)很難解決海量用戶 MySQL的分布式數(shù)據(jù)庫(kù)正好適合;

4.MYSQL可以定制化,更適應(yīng)Facebook業(yè)務(wù)發(fā)展需要。oracle等無(wú)法定制,不能滿足每個(gè)不同企業(yè)的定制化數(shù)據(jù)要求。所以mysql數(shù)據(jù)庫(kù)會(huì)越來(lái)越火,也越來(lái)越受到企業(yè)的重視。

總的來(lái)說是,MYSQL更加省錢,Oracle價(jià)格太貴,另外就是可定制化。

評(píng)論0 贊同0
  •  加載中...
CNZPH

CNZPH

回答于2022-06-28 14:37

MySQL 早期就是為 Web 應(yīng)用而生的,而 Facebook 正是此領(lǐng)域的業(yè)務(wù)場(chǎng)景;另外從成本價(jià)格來(lái)講,MySQL 開源免費(fèi)的,Oracle 價(jià)格高。在版權(quán)上,大公司更注重版權(quán),開發(fā)人員也不能隨便用盜版,所以,如果全部用正版數(shù)據(jù)庫(kù),肯定增加成本的。而 MySQL 開源免費(fèi)。當(dāng)然,也并不是說 MySQL 沒啥優(yōu)點(diǎn)。MySQL 作為是一種開放源代碼的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS),任何人都可以在 GeneralPublic License的許可下下載且個(gè)性化優(yōu),另外,MySQL 的可靠性,速度以及它適應(yīng)性強(qiáng)而受人歡迎。提供用于管理、檢查、優(yōu)化數(shù)據(jù)庫(kù)操作的管理工具 用其來(lái)管理內(nèi)容無(wú)疑是很好的選擇,而且 MySQL 數(shù)據(jù)庫(kù)系統(tǒng)使用最常用的為數(shù)據(jù)庫(kù)管理語(yǔ)言--結(jié)構(gòu)化查詢語(yǔ)言(SQL)進(jìn)行數(shù)據(jù)庫(kù)管理。不僅如此,MySQL 其自身的特點(diǎn)也是它的加分項(xiàng)。它支持AIX、FreeBSD、Windows等多種操作系統(tǒng)。不僅能夠作為一個(gè)多帶帶的應(yīng)用程序應(yīng)用在客戶端服務(wù)器網(wǎng)絡(luò)環(huán)境中,還能夠作為一個(gè)庫(kù)而嵌入到其他的軟件中提供多語(yǔ)言支持。雖然其他的大型數(shù)據(jù)庫(kù)例如 Oracle、DB2、SQL Server 等相比,MySQL 自有它的不足之處,如規(guī)模小、功能有限等,但是這絲毫也沒有減少它受歡迎的程度 。當(dāng)下 IT 行業(yè)的走向是開源化、免費(fèi)化。這就意味著個(gè)人可以定制更加具有個(gè)性化需求的數(shù)據(jù)庫(kù),從而節(jié)省開銷。這點(diǎn)上 MySQL 是符合的,ucloud巴巴等大型項(xiàng)目也用了 MySQL ,主要用了分布式存儲(chǔ)、緩存、分表分庫(kù)等技術(shù),靈活運(yùn)用而已。當(dāng)然,現(xiàn)在許多的數(shù)據(jù)庫(kù)的功能雖然很強(qiáng)大,但經(jīng)常性使用的無(wú)非幾種,或者有些比較適合自己使用的功能, oracle 等無(wú)法定制。所以 MySQL 這種開源的數(shù)據(jù)庫(kù)會(huì)越來(lái)越火。另外,F(xiàn)acebook 也并非一成不變使用 MySQL,節(jié)省開銷是一回事,但體驗(yàn)使用質(zhì)量好更是一回事,新的需求產(chǎn)生會(huì)催促其進(jìn)行升級(jí)成長(zhǎng),比如 Facebook 建 立了自己的 Cassandra 數(shù)據(jù)商店并且在其網(wǎng)站上重點(diǎn)推出一項(xiàng)新的搜索功能。據(jù)Facebook的工程師 Avinash Lakshma 介紹,Cassandra 僅用 0.12 毫秒就可以寫入 50 GB 的數(shù)據(jù),比 MySQL快了超過 2500 倍。Twitter公司也計(jì)劃從 MySQL 遷移到 Cassandra 數(shù)據(jù)庫(kù),因?yàn)楹笳呔哂懈蟮膹椥浴⒖蓴U(kuò)展性和大量的社區(qū)網(wǎng)絡(luò)開源開發(fā)人員。歡迎更多交流留言評(píng)論 !

評(píng)論0 贊同0
  •  加載中...
learn_shifeng

learn_shifeng

回答于2022-06-28 14:37

其實(shí)不止是Facebook,大部分互聯(lián)網(wǎng)公司都是在使用Mysql數(shù)據(jù)庫(kù)(會(huì)輔助使用Nosql數(shù)據(jù)庫(kù),這里暫時(shí)不討論)。

首先不能否認(rèn)的是,如果是按照單庫(kù)運(yùn)行,Oracle、DB2這些商業(yè)數(shù)據(jù)庫(kù)還是很強(qiáng)大的。IT公司的傳統(tǒng)套路就是IOE,其中O就是指的Oracle。另外I是指IBM的服務(wù)器,E是指EMC列陣存儲(chǔ)。三個(gè)加起來(lái)很強(qiáng)大,基本上可以支持一般的企業(yè)的業(yè)務(wù),當(dāng)然,也很貴,非常貴。

當(dāng)?shù)搅薋acebook這個(gè)級(jí)別的公司,數(shù)據(jù)量可不是幾千萬(wàn),幾個(gè)億這個(gè)級(jí)別的了,這時(shí)候如果數(shù)據(jù)還是單機(jī)的話,已經(jīng)很難支撐基數(shù)大、增長(zhǎng)快的數(shù)據(jù)了;這時(shí)候的做法就是分庫(kù),把數(shù)據(jù)保存到不同的數(shù)據(jù)庫(kù)節(jié)點(diǎn)上。


這時(shí)候Mysql的優(yōu)勢(shì)就顯示出來(lái)了:

  • 開源,就意味著免費(fèi),也就節(jié)省了License的費(fèi)用;

  • 也是因?yàn)殚_源,所以有能力的公司都會(huì)對(duì)公開版的Mysql做二次開發(fā),跟進(jìn)業(yè)務(wù)的需要去改造Mysql;

  • 服務(wù)器的錢也省下來(lái)了,也不必使用費(fèi)用很高的服務(wù)器了,這一點(diǎn)又是省錢。


總之,Mysql省錢,還能定制改造。



希望我的回答,能夠幫助到你!

我會(huì)持續(xù)分享Java程序開發(fā)、架構(gòu)設(shè)計(jì)、職業(yè)發(fā)展等方面的知識(shí)和見解,希望能得到你的關(guān)注今日頭條【會(huì)點(diǎn)代碼的大叔】,轉(zhuǎn)載請(qǐng)注明出處。

評(píng)論0 贊同0
  •  加載中...
clasnake

clasnake

回答于2022-06-28 14:37

1.facebook確實(shí)在使用MySQL,主要是因?yàn)槊赓M(fèi)開源,因?yàn)槊赓M(fèi)降低了成本,也因?yàn)殚_源,其可定制化比較強(qiáng),基于MySQL的第三方版本也比較多。facebook自己就基于MySQL搞了一個(gè)MyRocks數(shù)據(jù)庫(kù)。

RocksDB是FaceBook基于Google開源的LevelDB實(shí)現(xiàn)的,使用LSM(Log-Structure Merge)樹來(lái)存儲(chǔ)數(shù)據(jù)。Facebook開發(fā)工程師對(duì)RocksDB進(jìn)行了大量的開發(fā),使其符合MySQL的插件式存儲(chǔ)引擎框架的要求,移植到了MySQL上,并稱之為MyRocks。MyRocks支持基于SQL的數(shù)據(jù)讀寫、鎖機(jī)制、MVCC、事務(wù)、主從復(fù)制等MySQL絕大部分功能特性。從使用習(xí)慣考慮,使用MyRocks還是使用MySQL/InnoDB并沒有多大區(qū)別。


2.數(shù)據(jù)量大的問題,主要是通過分布式和分庫(kù)分表來(lái)解決的,并不是單機(jī)存儲(chǔ)。oracle的缺點(diǎn)就在于這,oracle雖然單機(jī)數(shù)據(jù)處理量大,但是對(duì)集群和擴(kuò)展的支持比較差。mysql單機(jī)不行,但是可以集群啊,集群不夠,還可以分布式啊。況且facebook這種業(yè)務(wù),也不適合oracle。


3.facebook

的數(shù)據(jù)存儲(chǔ)和處理不僅僅使用了MySQL,還是用了大數(shù)據(jù)的一套東西,比如spark。


4.歷史原因和使用習(xí)慣導(dǎo)致的,這也是為什么沒有選擇另外一個(gè)開源數(shù)據(jù)庫(kù)postgreSQL的主要原因。


所以,可以這么說,facebook數(shù)據(jù)量大是一個(gè)問題,但是并不是完全或者說多帶帶依賴MySQL全部解決的。

評(píng)論0 贊同0
  •  加載中...
xialong

xialong

回答于2022-06-28 14:37

2004年成立的Facebook很快便占據(jù)了社交網(wǎng)站的榜首,智能手機(jī)出現(xiàn)標(biāo)志著互聯(lián)網(wǎng)全面轉(zhuǎn)向手機(jī)端,在移動(dòng)互聯(lián)網(wǎng)時(shí)代Facebook的APP也同樣霸占著社交APP排名榜首。有很多網(wǎng)友就非常好奇Facebook使用哪個(gè)數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)龐大的用戶資料?通過了解社交網(wǎng)絡(luò)的老大哥Facebook的數(shù)據(jù)庫(kù)演變,從中吸取寶貴的經(jīng)驗(yàn)教訓(xùn)。

Facebook中的個(gè)人資料不僅僅是姓名、Email、興趣等屬性列表,而是一個(gè)非常豐富的社交圖譜,包括了親人/朋友、群組、喜歡、分享等等。剛開始的Facebook社交頁(yè)面非常簡(jiǎn)單,采用PHP來(lái)構(gòu)建應(yīng)用程序,MySql作為長(zhǎng)期使用數(shù)據(jù)庫(kù),采用Memcache作為后備緩存支持。PHP應(yīng)用程序可以直接訪問MySql和Memcache,中間沒有數(shù)據(jù)抽象層。

這種簡(jiǎn)單的數(shù)據(jù)庫(kù)架構(gòu)在訪問量很少的情況下優(yōu)勢(shì)確實(shí)非常明顯,但Facebook從2005年開始用戶量就飛速增長(zhǎng),最終這種數(shù)據(jù)架構(gòu)導(dǎo)致了開發(fā)人員敏捷性急劇下降。因?yàn)楣こ處熜枰褂脙煞N截然不同的數(shù)據(jù)模型來(lái)對(duì)數(shù)據(jù)進(jìn)行處理,MySql存儲(chǔ)主從對(duì)集合、Memcache則用于存儲(chǔ)和提供派生的平面鍵值的SQL查詢,MySql和Memcache相互協(xié)作成為了一個(gè)很大的難題,開發(fā)者使用數(shù)據(jù)庫(kù)前首先要獲得關(guān)于這兩個(gè)數(shù)據(jù)庫(kù)如何相互協(xié)作的復(fù)雜知識(shí)。

Facebook的數(shù)據(jù)量暴增也使得MySql的缺點(diǎn)凸顯出來(lái),MySql的單體架構(gòu)很早強(qiáng)制應(yīng)用程序級(jí)的分片,應(yīng)用程序則需要跟著哪個(gè)MySql實(shí)例復(fù)雜存儲(chǔ)哪個(gè)用戶的配置文件,數(shù)據(jù)量暴增之后,開發(fā)和操作的復(fù)雜程度就呈現(xiàn)指數(shù)級(jí)增長(zhǎng)。多數(shù)據(jù)中心、異地冗余復(fù)制也成為了MySql一個(gè)非常關(guān)鍵性的問題,主從異步復(fù)制轉(zhuǎn)移時(shí),最近的數(shù)據(jù)無(wú)法避免不會(huì)丟失。

于是Facebook自2009年開始自研構(gòu)建小而美的存儲(chǔ)系統(tǒng)TAO

TAO可以將facebook現(xiàn)有成百上千的Mysql主從對(duì)轉(zhuǎn)化成一個(gè)高度可擴(kuò)展、自動(dòng)分片、基于地理分布式的數(shù)據(jù)庫(kù)集群。TAO可以將分片遷移或者克隆到同一個(gè)集群的不同服務(wù)器,這樣就能平衡負(fù)載并消除負(fù)載峰值。

如果一次分片更新后、第二次分片更新前出現(xiàn)故障,TAO的異步修復(fù)作業(yè)就會(huì)清除掛起的關(guān)聯(lián)。

使用TAO架構(gòu)之后本質(zhì)上還是沒有放棄MySQL,因?yàn)楫?dāng)時(shí)的MySQL和其他數(shù)據(jù)庫(kù)都無(wú)法多帶帶解決爆炸式數(shù)據(jù)量的增長(zhǎng)。TAO本質(zhì)上只是創(chuàng)建了一個(gè)自定義數(shù)據(jù)庫(kù)的查詢層,這層抽象了底層分片的MySql數(shù)據(jù)庫(kù)。

分布式SQL應(yīng)運(yùn)而生

很多人都喜歡SQL普遍性以及靈活性,都不愿意放棄SQL的情況下對(duì)它進(jìn)行擴(kuò)展。雖然很多企業(yè)沒有Facebook這樣大規(guī)模數(shù)據(jù)增長(zhǎng)的問題,也同樣希望按照自己的意愿來(lái)拓展SQL數(shù)據(jù)庫(kù)。

第一波分布式SQL數(shù)據(jù)庫(kù)叫做NewSql,包括了Clustrix、NuoDB、Citus、Vitess等等,但這些都不足以從根本上簡(jiǎn)化開發(fā)人員、運(yùn)營(yíng)的體驗(yàn),反而阻礙了開發(fā)人員。于是就有了第二波分布式SQL數(shù)據(jù)庫(kù),靈感源于Google的Spanner,數(shù)據(jù)庫(kù)層內(nèi)置了大規(guī)??蓴U(kuò)展性和全球數(shù)據(jù)分布,而不需要像之前Facebook必須內(nèi)置在應(yīng)用程序?qū)又小?/p>

總結(jié)

Facebook、Google等等這樣的科技巨頭的數(shù)據(jù)庫(kù)擴(kuò)展的歷程,都是值得很多人學(xué)習(xí)和借鑒的。TAO保留了MySql的現(xiàn)有投資,但應(yīng)用工程師失去了使用SQL的能力。Google則創(chuàng)建了Spanner,走了一條不同的道路創(chuàng)建了一個(gè)全新的SQL數(shù)據(jù)庫(kù)。


以上個(gè)人淺見,歡迎批評(píng)指正。

認(rèn)同我的看法,請(qǐng)點(diǎn)個(gè)贊再走,感謝!

喜歡我的,請(qǐng)關(guān)注我,再次感謝!

評(píng)論0 贊同0
  •  加載中...
newsning

newsning

回答于2022-06-28 14:37

看到很多回答,不少都是不懂裝懂。很多人還扯到性能上。MySQL作為互聯(lián)網(wǎng)數(shù)據(jù)庫(kù)標(biāo)配時(shí),MySQL的性能,穩(wěn)定性都不好。

互聯(lián)網(wǎng)公司采用MySQL,真正的原因,也是唯一的原因,就是開源免費(fèi)。

互聯(lián)網(wǎng)數(shù)據(jù)的兩個(gè)特點(diǎn)決定了MySQL是首選,一個(gè)特點(diǎn)是互聯(lián)網(wǎng)針對(duì)的用戶群巨大,大的互聯(lián)網(wǎng)公司數(shù)據(jù)庫(kù)服務(wù)器成百數(shù)千,一個(gè)oracle版費(fèi)幾十萬(wàn),這個(gè)費(fèi)用太巨大。另外一個(gè)特點(diǎn),絕大部分互聯(lián)網(wǎng)數(shù)據(jù)的重要性遠(yuǎn)低于銀行電信,甚至一般企業(yè)業(yè)務(wù),比如一個(gè)用戶的留言,一個(gè)帖子,真丟了,只要不是普遍現(xiàn)象,后果不嚴(yán)重,這也是早期MySQL不穩(wěn)定,備份機(jī)制也不好時(shí),但仍成為互聯(lián)網(wǎng)標(biāo)配的原因。

現(xiàn)在很多大型互聯(lián)網(wǎng)公司,數(shù)據(jù)庫(kù)其實(shí)既有MySQL,也有oracle,依據(jù)數(shù)據(jù)類型來(lái)使用不同數(shù)據(jù)庫(kù)。

評(píng)論0 贊同0
  •  加載中...
Kylin_Mountain

Kylin_Mountain

回答于2022-06-28 14:37

歡迎關(guān)注我,一個(gè)程序員老司機(jī),和你分享編程、運(yùn)營(yíng)、需求等等經(jīng)驗(yàn)和趣事。

從你的問題描述來(lái)看,我覺得這是一個(gè)偽命題,在這個(gè)行業(yè),很多人都流傳著一個(gè)所謂經(jīng)典的名言:‘如果MySQL數(shù)據(jù)庫(kù)存儲(chǔ)記錄超過一百萬(wàn)的時(shí)候,性能會(huì)有很大的折扣’,但是結(jié)果facebook卻能夠很好的運(yùn)行,下面我們就來(lái)分析一下原因。

原因一

為了應(yīng)對(duì)高性能的應(yīng)用,我們的MySQL也在不斷的改進(jìn),不斷的引入很多高級(jí)的功能,比如表分區(qū)、復(fù)制和集群等,還引入了Memcached,利用好這些功能,能夠讓我們的應(yīng)用程序性能大大的提高,同時(shí)也能夠處理好存儲(chǔ)大數(shù)據(jù)的問題。

原因二

我們知道MySQL是開源的,什么意思呢?就是我們能夠?qū)ySQL的源代碼進(jìn)行修改然后編譯,從而實(shí)現(xiàn)屬于我們的定制化的MySQL,所以Facebook也對(duì)MySQL進(jìn)行了修改,刪除了很多不需要的功能,添加了很多自己需要的功能,尤其是將一些認(rèn)為效率低的東西徹底移除,打造屬于Facebook的定制化MySQL,這應(yīng)該是MySQL能夠勝任Facebook的根本原因。

原因三

雖然數(shù)據(jù)庫(kù)提供了很多我們需要的功能,但是為了提高應(yīng)用的性能,我們很多時(shí)候不一定要借助數(shù)據(jù)庫(kù)來(lái)完成,比如實(shí)現(xiàn)一些統(tǒng)計(jì)功能,我們可以不借助數(shù)據(jù)庫(kù)的存儲(chǔ)過程來(lái)實(shí)現(xiàn),而是采用應(yīng)用程序的方式來(lái)實(shí)現(xiàn),讓數(shù)據(jù)庫(kù)只做一件事:就是數(shù)據(jù)管理,不做太復(fù)雜的數(shù)據(jù)處理操作。

希望能夠幫助到你,還有什么疑問,可以在評(píng)論中進(jìn)行交流。

評(píng)論0 贊同0
  •  加載中...

最新活動(dòng)

您已邀請(qǐng)0人回答 查看邀請(qǐng)

我的邀請(qǐng)列表

  • 擅長(zhǎng)該話題
  • 回答過該話題
  • 我關(guān)注的人
向幫助了您的網(wǎng)友說句感謝的話吧!
付費(fèi)偷看金額在0.1-10元之間
<