精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

當(dāng)前位置:大數(shù)據(jù)數(shù)據(jù)庫(kù) → 正文

埋在MYSQL數(shù)據(jù)庫(kù)應(yīng)用中的17個(gè)關(guān)鍵問(wèn)題!

責(zé)任編輯:jackye 作者:鄒俊杰 |來(lái)源:企業(yè)網(wǎng)D1Net  2017-04-28 14:18:24 本文摘自:中國(guó)云計(jì)算

鄒俊杰,2016年加入騰訊,現(xiàn)任職于騰訊TEG數(shù)據(jù)平臺(tái)部產(chǎn)品中心,主要負(fù)責(zé)騰訊分析mta.qq.com及mta.oa.com系統(tǒng)的開(kāi)發(fā)及運(yùn)維工作。

Mysql的使用非常普遍,跟mysql有關(guān)的話(huà)題也非常多,如性能優(yōu)化、高可用性、強(qiáng)一致性、安全、備份、集群、橫向擴(kuò)展、縱向擴(kuò)展、負(fù)載均衡、讀寫(xiě)分離等。要想掌握其中的精髓,可得花費(fèi)不少功力,雖然目前流行的mysql替代方案有很多,可是從最小成本最容易維護(hù)的角度而言,mysql還是首選。下面從應(yīng)用場(chǎng)景的角度切入,對(duì)mysql的技術(shù)點(diǎn)進(jìn)行組織,寫(xiě)一份知識(shí)圖譜,方便“下學(xué)期(2017年)”進(jìn)行更深入的學(xué)習(xí)和總結(jié)。

如下圖整理,我試著把Mysql的應(yīng)用場(chǎng)景分為6種,每種場(chǎng)景下需要考慮的重點(diǎn)問(wèn)題不一樣,從而引出不同問(wèn)題點(diǎn)下需要補(bǔ)齊的知識(shí)點(diǎn),后續(xù)繼續(xù)基于這些知識(shí)點(diǎn)進(jìn)行學(xué)習(xí)和整理。(期待大家的意見(jiàn)和提供學(xué)習(xí)材料,謝謝!)

一、單Master

單Master的情況是普遍存在的,對(duì)于很多個(gè)人站點(diǎn)、初創(chuàng)公司、小型內(nèi)部系統(tǒng),考慮到成本、更新頻率、系統(tǒng)重要性等問(wèn)題,系統(tǒng)只依賴(lài)一個(gè)單例數(shù)據(jù)庫(kù)提供服務(wù),基本上已經(jīng)滿(mǎn)足需求。這種場(chǎng)景下我覺(jué)得重點(diǎn)應(yīng)該關(guān)注的話(huà)題有上圖所示的四點(diǎn)。

其中最重要的環(huán)節(jié)是數(shù)據(jù)備份,如果是交易量非常低,并且具有非常明確的服務(wù)時(shí)間段特性的話(huà),簡(jiǎn)單的mysqldump是可以勝任的。但是這是有缺陷的,數(shù)據(jù)還原之后注定從備份點(diǎn)到還原點(diǎn)之間的數(shù)據(jù)會(huì)丟失。然而在極多數(shù)的情況下,備份的工作是沒(méi)法馬虎的,如下列舉的幾點(diǎn)小細(xì)節(jié),下學(xué)期將分享更多操作性的文章。

1)冷備:停機(jī),直接copy物理文件,InnoDB引擎(frm文件、共享表空間文件、獨(dú)立表空間文件、重做日志文件、my.cnf)。

恢復(fù):把文件copy到對(duì)應(yīng)目錄。

2)熱備: Ibbackup或者XtraBackup工具,記錄重做日志文件檢查點(diǎn)的LSN,copy共享表空間文件以及獨(dú)立表空間文件(不產(chǎn)生任何阻塞),記錄copy后重做日志文件檢查點(diǎn)的LSN,copy備份是產(chǎn)生的重做日志。

恢復(fù):恢復(fù)表空間文件,應(yīng)用重做日志文件。

3)溫備:

mysqldump,--single-transaction參數(shù)進(jìn)行事務(wù)管理保證數(shù)據(jù)一致性。備份時(shí)不能用DDL語(yǔ)句。 恢復(fù):直接執(zhí)行文件,mysql –uroot –p <文件名.sql>

二進(jìn)制半同步復(fù)制,主從服務(wù)器增量復(fù)制

恢復(fù):mysqlbinlog

二、一主一從

考慮一主一從的多數(shù)初衷是系統(tǒng)性能和系統(tǒng)高可用性問(wèn)題,除了單Master場(chǎng)景中的備份工作需要做好以外,還有性能優(yōu)化、讀寫(xiě)分離、負(fù)載均衡三項(xiàng)重點(diǎn)工作需要考慮。其中性能優(yōu)化的內(nèi)容比較多,也是一塊大主題,要從系統(tǒng)的服務(wù)指標(biāo)作為依據(jù)采取相應(yīng)的動(dòng)作,多數(shù)系統(tǒng)要求的是3秒內(nèi)完成請(qǐng)求,總體換算下來(lái),數(shù)據(jù)庫(kù)大概可以有1.5秒的總執(zhí)行時(shí)間,能滿(mǎn)足這個(gè)性能要求就是合理的優(yōu)化方案。下學(xué)期以這樣的優(yōu)先級(jí)來(lái)分別整理內(nèi)容:索引優(yōu)化 -》 表設(shè)計(jì)優(yōu)化 -》數(shù)據(jù)庫(kù)配置優(yōu)化 -》硬件優(yōu)化。

讀寫(xiě)分離和負(fù)載均衡的實(shí)現(xiàn)相對(duì)簡(jiǎn)單些,我目前維護(hù)的系統(tǒng)比較落后,沒(méi)有做讀寫(xiě)分離,因?yàn)槭且惶滓詧?bào)表類(lèi)功能為主的系統(tǒng),而負(fù)載均衡是依賴(lài)php代碼來(lái)做的,從實(shí)際運(yùn)維效果來(lái)看,不大理想,而且負(fù)載均衡的代碼過(guò)分嵌入到業(yè)務(wù)邏輯代碼中,給代碼維護(hù)帶來(lái)一定噪音。下學(xué)期計(jì)劃對(duì)各種中間件進(jìn)行實(shí)踐和性能測(cè)試,到時(shí)候把一些測(cè)試數(shù)據(jù)分享出來(lái)。

三、一主 n 從

一旦開(kāi)始考慮一主多從的服務(wù)器架構(gòu),則證明你的系統(tǒng)對(duì)可用性、一致性、性能中一種或者多種的要求比較高。好多系統(tǒng)在開(kāi)始搭建的時(shí)候都會(huì)往這個(gè)方向看齊,畢竟這樣“看起來(lái)”系統(tǒng)會(huì)健壯很多。不過(guò)其實(shí)并不能單單依靠mysql的配置和mysql自帶的中間件來(lái)解決可用性、一致性方面的問(wèn)題。

四、橫向集群

系統(tǒng)龐大到需要分庫(kù)分表,其實(shí)是一件可喜可賀的事情,但是切記的是要前面提到性能優(yōu)化工作做到極致之后才好考慮這些會(huì)增加系統(tǒng)復(fù)雜度的解決方案。橫向集群主要是從業(yè)務(wù)特性的角度對(duì)系統(tǒng)進(jìn)行切分,最徹底就是切分成了各個(gè)子系統(tǒng),子系統(tǒng)之間通過(guò)一些數(shù)據(jù)同步的方案來(lái)把一些核心數(shù)據(jù)進(jìn)行共享,以避免跨庫(kù)調(diào)用跨庫(kù)join。

然后是各種系統(tǒng)接口調(diào)用,把大事務(wù)拆成小事務(wù),事務(wù)之間做好隔離和同步。上圖中的三個(gè)問(wèn)題在橫向集群的架構(gòu)體系中應(yīng)屬于很有特色的問(wèn)題,在實(shí)際項(xiàng)目中其實(shí)是盡量去避免這些需求的存在的,不過(guò)如果確實(shí)需要了,也得有解決方案。下學(xué)期也將針對(duì)這些問(wèn)題進(jìn)行逐一整理,并測(cè)試一下一些號(hào)稱(chēng)支持這些功能的中間件。

五、縱向集群

橫向集群的切分思路最終是切分子系統(tǒng),而縱向集群最后遇到的最棘手的問(wèn)題是擴(kuò)縮容,我運(yùn)維的一個(gè)系統(tǒng)是提前對(duì)數(shù)據(jù)做了256個(gè)切片,256切片中0~127切片和128~255切片分別存在兩個(gè)一主兩從的數(shù)據(jù)庫(kù)集群中,系統(tǒng)運(yùn)維了3年多,目前還沒(méi)有擴(kuò)容需求。設(shè)計(jì)初衷應(yīng)該是考慮得到,假設(shè)有一天數(shù)據(jù)量非常大,可以把256個(gè)切片分4大片,分別存儲(chǔ)到4個(gè)一主兩從的集群中,從而實(shí)現(xiàn)擴(kuò)容。

這個(gè)思路的確是可取的,只是我們的分庫(kù)邏輯當(dāng)前是php代碼實(shí)現(xiàn),也有一定程度上影響了業(yè)務(wù)代碼的邏輯,運(yùn)維起來(lái)有點(diǎn)心驚膽戰(zhàn),還是保持業(yè)務(wù)代碼清爽比較好。

下學(xué)期將介紹一些實(shí)現(xiàn)了庫(kù)路由功能的中間件的使用,也根據(jù)實(shí)際情況把想到的一些擴(kuò)縮容方案實(shí)踐一遍,敬請(qǐng)期待實(shí)操效果的分享。

六、混合模式

與其說(shuō)這部分內(nèi)容討論上面5種場(chǎng)景的混合,不如說(shuō)這部分內(nèi)容是做總結(jié)。上面的5種場(chǎng)景中,一共列舉了17個(gè)問(wèn)題點(diǎn),這17個(gè)問(wèn)題點(diǎn)基本上都是疊加式的,越往深入的框架去做就越需要考慮齊這17個(gè)問(wèn)題點(diǎn)。17個(gè)問(wèn)題點(diǎn)考慮全了,混合模式下的問(wèn)題就不成問(wèn)題了。

數(shù)據(jù)庫(kù)的文章有很多,不過(guò)文章只能局限在某個(gè)細(xì)節(jié)上進(jìn)行分析,閱讀得太零散往往會(huì)只見(jiàn)樹(shù)木不見(jiàn)森林,所以好的文章得看,好的書(shū)更得看,基于這些知識(shí)的匯總梳理更更得做,2017年擼起袖子加油干!

關(guān)鍵字:Mysql分子系統(tǒng)

本文摘自:中國(guó)云計(jì)算

x 埋在MYSQL數(shù)據(jù)庫(kù)應(yīng)用中的17個(gè)關(guān)鍵問(wèn)題! 掃一掃
分享本文到朋友圈
當(dāng)前位置:大數(shù)據(jù)數(shù)據(jù)庫(kù) → 正文

埋在MYSQL數(shù)據(jù)庫(kù)應(yīng)用中的17個(gè)關(guān)鍵問(wèn)題!

責(zé)任編輯:jackye 作者:鄒俊杰 |來(lái)源:企業(yè)網(wǎng)D1Net  2017-04-28 14:18:24 本文摘自:中國(guó)云計(jì)算

鄒俊杰,2016年加入騰訊,現(xiàn)任職于騰訊TEG數(shù)據(jù)平臺(tái)部產(chǎn)品中心,主要負(fù)責(zé)騰訊分析mta.qq.com及mta.oa.com系統(tǒng)的開(kāi)發(fā)及運(yùn)維工作。

Mysql的使用非常普遍,跟mysql有關(guān)的話(huà)題也非常多,如性能優(yōu)化、高可用性、強(qiáng)一致性、安全、備份、集群、橫向擴(kuò)展、縱向擴(kuò)展、負(fù)載均衡、讀寫(xiě)分離等。要想掌握其中的精髓,可得花費(fèi)不少功力,雖然目前流行的mysql替代方案有很多,可是從最小成本最容易維護(hù)的角度而言,mysql還是首選。下面從應(yīng)用場(chǎng)景的角度切入,對(duì)mysql的技術(shù)點(diǎn)進(jìn)行組織,寫(xiě)一份知識(shí)圖譜,方便“下學(xué)期(2017年)”進(jìn)行更深入的學(xué)習(xí)和總結(jié)。

如下圖整理,我試著把Mysql的應(yīng)用場(chǎng)景分為6種,每種場(chǎng)景下需要考慮的重點(diǎn)問(wèn)題不一樣,從而引出不同問(wèn)題點(diǎn)下需要補(bǔ)齊的知識(shí)點(diǎn),后續(xù)繼續(xù)基于這些知識(shí)點(diǎn)進(jìn)行學(xué)習(xí)和整理。(期待大家的意見(jiàn)和提供學(xué)習(xí)材料,謝謝!)

一、單Master

單Master的情況是普遍存在的,對(duì)于很多個(gè)人站點(diǎn)、初創(chuàng)公司、小型內(nèi)部系統(tǒng),考慮到成本、更新頻率、系統(tǒng)重要性等問(wèn)題,系統(tǒng)只依賴(lài)一個(gè)單例數(shù)據(jù)庫(kù)提供服務(wù),基本上已經(jīng)滿(mǎn)足需求。這種場(chǎng)景下我覺(jué)得重點(diǎn)應(yīng)該關(guān)注的話(huà)題有上圖所示的四點(diǎn)。

其中最重要的環(huán)節(jié)是數(shù)據(jù)備份,如果是交易量非常低,并且具有非常明確的服務(wù)時(shí)間段特性的話(huà),簡(jiǎn)單的mysqldump是可以勝任的。但是這是有缺陷的,數(shù)據(jù)還原之后注定從備份點(diǎn)到還原點(diǎn)之間的數(shù)據(jù)會(huì)丟失。然而在極多數(shù)的情況下,備份的工作是沒(méi)法馬虎的,如下列舉的幾點(diǎn)小細(xì)節(jié),下學(xué)期將分享更多操作性的文章。

1)冷備:停機(jī),直接copy物理文件,InnoDB引擎(frm文件、共享表空間文件、獨(dú)立表空間文件、重做日志文件、my.cnf)。

恢復(fù):把文件copy到對(duì)應(yīng)目錄。

2)熱備: Ibbackup或者XtraBackup工具,記錄重做日志文件檢查點(diǎn)的LSN,copy共享表空間文件以及獨(dú)立表空間文件(不產(chǎn)生任何阻塞),記錄copy后重做日志文件檢查點(diǎn)的LSN,copy備份是產(chǎn)生的重做日志。

恢復(fù):恢復(fù)表空間文件,應(yīng)用重做日志文件。

3)溫備:

mysqldump,--single-transaction參數(shù)進(jìn)行事務(wù)管理保證數(shù)據(jù)一致性。備份時(shí)不能用DDL語(yǔ)句。 恢復(fù):直接執(zhí)行文件,mysql –uroot –p <文件名.sql>

二進(jìn)制半同步復(fù)制,主從服務(wù)器增量復(fù)制

恢復(fù):mysqlbinlog

二、一主一從

考慮一主一從的多數(shù)初衷是系統(tǒng)性能和系統(tǒng)高可用性問(wèn)題,除了單Master場(chǎng)景中的備份工作需要做好以外,還有性能優(yōu)化、讀寫(xiě)分離、負(fù)載均衡三項(xiàng)重點(diǎn)工作需要考慮。其中性能優(yōu)化的內(nèi)容比較多,也是一塊大主題,要從系統(tǒng)的服務(wù)指標(biāo)作為依據(jù)采取相應(yīng)的動(dòng)作,多數(shù)系統(tǒng)要求的是3秒內(nèi)完成請(qǐng)求,總體換算下來(lái),數(shù)據(jù)庫(kù)大概可以有1.5秒的總執(zhí)行時(shí)間,能滿(mǎn)足這個(gè)性能要求就是合理的優(yōu)化方案。下學(xué)期以這樣的優(yōu)先級(jí)來(lái)分別整理內(nèi)容:索引優(yōu)化 -》 表設(shè)計(jì)優(yōu)化 -》數(shù)據(jù)庫(kù)配置優(yōu)化 -》硬件優(yōu)化。

讀寫(xiě)分離和負(fù)載均衡的實(shí)現(xiàn)相對(duì)簡(jiǎn)單些,我目前維護(hù)的系統(tǒng)比較落后,沒(méi)有做讀寫(xiě)分離,因?yàn)槭且惶滓詧?bào)表類(lèi)功能為主的系統(tǒng),而負(fù)載均衡是依賴(lài)php代碼來(lái)做的,從實(shí)際運(yùn)維效果來(lái)看,不大理想,而且負(fù)載均衡的代碼過(guò)分嵌入到業(yè)務(wù)邏輯代碼中,給代碼維護(hù)帶來(lái)一定噪音。下學(xué)期計(jì)劃對(duì)各種中間件進(jìn)行實(shí)踐和性能測(cè)試,到時(shí)候把一些測(cè)試數(shù)據(jù)分享出來(lái)。

三、一主 n 從

一旦開(kāi)始考慮一主多從的服務(wù)器架構(gòu),則證明你的系統(tǒng)對(duì)可用性、一致性、性能中一種或者多種的要求比較高。好多系統(tǒng)在開(kāi)始搭建的時(shí)候都會(huì)往這個(gè)方向看齊,畢竟這樣“看起來(lái)”系統(tǒng)會(huì)健壯很多。不過(guò)其實(shí)并不能單單依靠mysql的配置和mysql自帶的中間件來(lái)解決可用性、一致性方面的問(wèn)題。

四、橫向集群

系統(tǒng)龐大到需要分庫(kù)分表,其實(shí)是一件可喜可賀的事情,但是切記的是要前面提到性能優(yōu)化工作做到極致之后才好考慮這些會(huì)增加系統(tǒng)復(fù)雜度的解決方案。橫向集群主要是從業(yè)務(wù)特性的角度對(duì)系統(tǒng)進(jìn)行切分,最徹底就是切分成了各個(gè)子系統(tǒng),子系統(tǒng)之間通過(guò)一些數(shù)據(jù)同步的方案來(lái)把一些核心數(shù)據(jù)進(jìn)行共享,以避免跨庫(kù)調(diào)用跨庫(kù)join。

然后是各種系統(tǒng)接口調(diào)用,把大事務(wù)拆成小事務(wù),事務(wù)之間做好隔離和同步。上圖中的三個(gè)問(wèn)題在橫向集群的架構(gòu)體系中應(yīng)屬于很有特色的問(wèn)題,在實(shí)際項(xiàng)目中其實(shí)是盡量去避免這些需求的存在的,不過(guò)如果確實(shí)需要了,也得有解決方案。下學(xué)期也將針對(duì)這些問(wèn)題進(jìn)行逐一整理,并測(cè)試一下一些號(hào)稱(chēng)支持這些功能的中間件。

五、縱向集群

橫向集群的切分思路最終是切分子系統(tǒng),而縱向集群最后遇到的最棘手的問(wèn)題是擴(kuò)縮容,我運(yùn)維的一個(gè)系統(tǒng)是提前對(duì)數(shù)據(jù)做了256個(gè)切片,256切片中0~127切片和128~255切片分別存在兩個(gè)一主兩從的數(shù)據(jù)庫(kù)集群中,系統(tǒng)運(yùn)維了3年多,目前還沒(méi)有擴(kuò)容需求。設(shè)計(jì)初衷應(yīng)該是考慮得到,假設(shè)有一天數(shù)據(jù)量非常大,可以把256個(gè)切片分4大片,分別存儲(chǔ)到4個(gè)一主兩從的集群中,從而實(shí)現(xiàn)擴(kuò)容。

這個(gè)思路的確是可取的,只是我們的分庫(kù)邏輯當(dāng)前是php代碼實(shí)現(xiàn),也有一定程度上影響了業(yè)務(wù)代碼的邏輯,運(yùn)維起來(lái)有點(diǎn)心驚膽戰(zhàn),還是保持業(yè)務(wù)代碼清爽比較好。

下學(xué)期將介紹一些實(shí)現(xiàn)了庫(kù)路由功能的中間件的使用,也根據(jù)實(shí)際情況把想到的一些擴(kuò)縮容方案實(shí)踐一遍,敬請(qǐng)期待實(shí)操效果的分享。

六、混合模式

與其說(shuō)這部分內(nèi)容討論上面5種場(chǎng)景的混合,不如說(shuō)這部分內(nèi)容是做總結(jié)。上面的5種場(chǎng)景中,一共列舉了17個(gè)問(wèn)題點(diǎn),這17個(gè)問(wèn)題點(diǎn)基本上都是疊加式的,越往深入的框架去做就越需要考慮齊這17個(gè)問(wèn)題點(diǎn)。17個(gè)問(wèn)題點(diǎn)考慮全了,混合模式下的問(wèn)題就不成問(wèn)題了。

數(shù)據(jù)庫(kù)的文章有很多,不過(guò)文章只能局限在某個(gè)細(xì)節(jié)上進(jìn)行分析,閱讀得太零散往往會(huì)只見(jiàn)樹(shù)木不見(jiàn)森林,所以好的文章得看,好的書(shū)更得看,基于這些知識(shí)的匯總梳理更更得做,2017年擼起袖子加油干!

關(guān)鍵字:Mysql分子系統(tǒng)

本文摘自:中國(guó)云計(jì)算

電子周刊
回到頂部

關(guān)于我們聯(lián)系我們版權(quán)聲明隱私條款廣告服務(wù)友情鏈接投稿中心招賢納士

企業(yè)網(wǎng)版權(quán)所有 ©2010-2024 京ICP備09108050號(hào)-6 京公網(wǎng)安備 11010502049343號(hào)

^
  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 宁津县| 祁连县| 汪清县| 鄂托克旗| 遵义县| 正镶白旗| 锡林郭勒盟| 中超| 兴化市| 阿拉善盟| 台东县| 云安县| 赣榆县| 凤庆县| 南靖县| 乐都县| 福州市| 安岳县| 沿河| 文成县| 毕节市| 绥滨县| 华宁县| 宝鸡市| 兴海县| 民勤县| 杂多县| 筠连县| 虞城县| 昆山市| 玛纳斯县| 两当县| 咸丰县| 翁牛特旗| 金乡县| 永泰县| 灯塔市| 中牟县| 白沙| 扎赉特旗| 兰考县|