明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

Mysql存儲寫入速度快慢是怎么形成的?

[摘要]一、存儲結(jié)構(gòu)分析MySQL存儲結(jié)構(gòu)圖:解析:1、讀操作:內(nèi)存讀-->cache緩存讀-->磁盤物理讀讀取到的數(shù)據(jù)會按上述順序往回送。2、寫操作:內(nèi)存數(shù)據(jù)直接寫入cache緩存(非常快)-...
一、存儲結(jié)構(gòu)分析

MySQL存儲結(jié)構(gòu)圖:
Mysql存儲寫入速度快慢是怎么形成的?


解析:

1、讀操作:內(nèi)存讀-->cache緩存讀-->磁盤物理讀

讀取到的數(shù)據(jù)會按上述順序往回送。

2、寫操作:內(nèi)存數(shù)據(jù)直接寫入cache緩存(非?)-->寫入disk

由上可知,MySQL之所以讀寫速度快,cache在其中起到了關(guān)鍵作用。

1、Cache緩存特點:

1、速度快

2、掉電數(shù)據(jù)丟失

3、容量有限

2、保護數(shù)據(jù)安全(防止意外掉電的數(shù)據(jù)丟失)應(yīng)對措施:

在存儲中,增加BBU(電池備份單元,就是電池),在掉電后,可以把緩存中的數(shù)據(jù)寫到磁盤中,保證數(shù)據(jù)不會丟失。

如果沒有提供BBU或者BBU壞了,內(nèi)存數(shù)據(jù)就不會寫入cache緩存中,就會直接寫入disk中;相較于寫入內(nèi)存,寫入磁盤的速度就大打折扣(萬倍之差)。與此同時,因為慢下來的“寫”占了絕大部分“讀”的帶寬。所以BBU問題是讀寫性能差的一很大的影響因素。

3、cache緩存容量有限

(4G、8G、16G、32G),系統(tǒng)為了保持cache有用,會周期性的將cache緩存的數(shù)據(jù)寫入磁盤中,避免cache被占滿。

二、存儲寫入速度慢分析

數(shù)據(jù)庫-->寫入速度慢-->系統(tǒng)hang住
Q:如何判斷寫入速度慢?

A:

1、懷疑BBU問題

監(jiān)控BBU的bug,解決:重啟BBU

2、cache被占滿(類同于BBU壞了的情況)

1、海量的寫入數(shù)據(jù)占滿cache緩存,判斷:

shell> iostat -x

mysql> show global status like 'handler_write';

2、cache寫入disk的速度慢了(排水速度遠小于注水速度)

硬盤I/O異常,負載過高:數(shù)據(jù)庫海量的物理讀(異常SQL),判斷:

mysql> show status like 'Innodb_buffer_pool_reads';

3、存儲性能差問題

1、存儲設(shè)備差,更新設(shè)備

2、災(zāi)備同步風(fēng)險,“再好的工程師,敵不過藍翔的挖掘機、農(nóng)民工的鋤頭……”

三、關(guān)于BBU

英文簡稱:BBU

英文全稱:Battery Backup Unit

中文全稱:電池備份單元,是電池

1、作用:

在掉電后,把緩存中的數(shù)據(jù)寫到硬盤中,保證數(shù)據(jù)不會丟失;

是為了意外掉電刷臟數(shù)據(jù)的一種保護措施;

能夠在系統(tǒng)外部供電失效的情況下,提供后備電源支持,以保證存儲陣列中業(yè)務(wù)數(shù)據(jù)的安全性。

2、許多存儲設(shè)備都會配備BBU

BBU在電源供應(yīng)出現(xiàn)問題的時候,為RAID控制器緩存提供電源。當電源斷電時,BBU電力可以使控制器內(nèi)緩存中的數(shù)據(jù)可以保存一定時間(根據(jù)BBU的型號而決定)。用戶只需要在BBU電力耗盡(電池有限)之前恢復(fù)正常供電,緩存中的數(shù)據(jù)即可被完整的寫回RAID中,避免斷電導(dǎo)致數(shù)據(jù)丟失。

和服務(wù)器電池有點不一樣,服務(wù)器中,在配置RAID卡的時候可以配一個電池,在系統(tǒng)掉電后,能維持內(nèi)存中的數(shù)據(jù)不丟失,但時間有限,大約12個小時左右,假如是12小時,如果在12內(nèi)沒有恢復(fù),內(nèi)存中的數(shù)據(jù)就會丟失;

3、超級電容

服務(wù)器還有一種保護方式,叫超級電容,也是和RAID卡配套的,他能在服務(wù)器掉電后把緩存中的數(shù)據(jù)寫入到電容中,而且會永久保存,類似寫入硬盤,實際上是寫入電容,你就理解成寫入U盤把。他比電池好,即使服務(wù)器在12個小時后沒有恢復(fù)電源,也不會造成數(shù)據(jù)丟失。

以上就是Mysql存儲寫入速度快慢是怎么形成的?的詳細內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!


學(xué)習(xí)教程快速掌握從入門到精通的SQL知識。