国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

Innodb三大特性之doublewrite_MySQL

來源:懂視網 責編:小采 時間:2020-11-09 20:07:35
文檔

Innodb三大特性之doublewrite_MySQL

Innodb三大特性之doublewrite_MySQL:1、doublewrite buffer(mysql官方的介紹) InnoDB uses a novel file flush technique called doublewrite. Before writing pages to the data files, InnoDB first writes them to a contiguous
推薦度:
導讀Innodb三大特性之doublewrite_MySQL:1、doublewrite buffer(mysql官方的介紹) InnoDB uses a novel file flush technique called doublewrite. Before writing pages to the data files, InnoDB first writes them to a contiguous

1、doublewrite buffer(mysql官方的介紹)

InnoDB uses a novel file flush technique called doublewrite. Before writing pages to the data files, InnoDB first writes them to a contiguous area called the doublewrite buffer. Only after the write and the flush to the doublewrite buffer have completed, does InnoDB write the pages to their proper positions in the data file. If there is an operating system, storage subsystem, or mysqld process crash in the middle of a page write, InnoDB can later find a good copy of the page from the doublewrite buffer during crash recovery.

Although data is always written twice, the doublewrite buffer does not require twice as much I/O overhead or twice as many I/O operations. Data is written to the buffer itself as a large sequential chunk, with a single fsync() call to the operating system.

To turn off the doublewrite buffer, specify the option innodb_doublewrite=0.

2、partial page write

InnoDB 的Page Size一般是16KB,其數據校驗也是針對這16KB來計算的,將數據寫入到磁盤是以Page為單位進行操作的。而計算機硬件和操作系統,在極端情況下 (比如斷電)往往并不能保證這一操作的原子性,16K的數據,寫入4K 時,發生了系統斷電/os crash ,只有一部分寫是成功的,這種情況下就是 partial page write 問題。

很多DBA 會想到系統恢復后,MySQL 可以根據redo log 進行恢復,而mysql在恢復的過程中是檢查page的checksum,checksum就是pgae的最后事務號,發生partial page write 問題時,page已經損壞,找不到該page中的事務號,就無法恢復

所以說,當page 損壞之后,其實應用redo是沒有意義的,這時候無法使用redo來恢復,因為原始頁已經損壞了,會發生數據丟失。

3、doublewrite

在InnoDB將BP中的Dirty Page刷(flush)到磁盤上時,首先會將(memcpy函數)Page刷到InnoDB tablespace的一個區域中,我們稱該區域為Double write Buffer(大小為2MB,每次寫入1MB)。在向Double write Buffer寫入成功后,第二步、再將數據拷貝到數據文件對應的位置。

當第二步過程中發生故障,也就是發生partial page write的問題。恢復的時候先檢查頁內的checksum是否相同,不一致,則直接從doublewrite中恢復。

1)如果寫dw buffer失敗。那么這些數據不會寫到磁盤,innodb會載入磁盤原始數據和redo日志比較,并重新刷到dw buffer。

2)如果寫dw buffer成功,但是刷新到磁盤失敗,那么innodb就不會通過事務日志來恢復了,而是直接刷新dw buffer中的數據。

4、對性能的影響

系統需要將數據寫兩份,一般認為,Double Write是會降低系統性能的。peter猜測可能會有5-10%的性能損失,但是因為實現了數據的一致,是值得的。Mark Callaghan認為這應該是存儲層面應該解決的問題,放在數據庫層面無疑是犧牲了很多性能的。

事實上,Double Write對性能影響并沒有你想象(寫兩遍性能應該降低了50%吧?)的那么大。在BP中一次性往往會有很多的Dirty Page同時被flush,Double Write則把這些寫操作,由隨機寫轉化為了順序寫。而在Double Write的第二個階段,因為Double Write Buffer中積累了很多Dirty Page,所以向真正的數據文件中寫數據的時候,可能有很多寫操作可以合并,這樣有可能會降低Fsync的調用次數。

基于上面的原因,Double Write并沒有想象的那么糟。另外,Dimitri在測試后,發現打開和關閉Double Write對效率的影響并不大。

5、doublewrite參數

mysql> show variables like "%double%";
+--------------------+-------+
| Variable_name | Value |
+--------------------+-------+
| innodb_doublewrite | ON |
+--------------------+-------+
1 row in set (0.00 sec)

mysql> SHOW STATUS LIKE "%innodb_dblwr%";
+----------------------------+-------+
| Variable_name | Value |
+----------------------------+-------+
| Innodb_dblwr_pages_written | 447 |
| Innodb_dblwr_writes | 38 |
+----------------------------+-------+
2 rows in set (0.00 sec)

從上面可以看出, Flush了447次到doublewrite buffer中,寫文件共38次,則每次write合并了447/38次flush

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

Innodb三大特性之doublewrite_MySQL

Innodb三大特性之doublewrite_MySQL:1、doublewrite buffer(mysql官方的介紹) InnoDB uses a novel file flush technique called doublewrite. Before writing pages to the data files, InnoDB first writes them to a contiguous
推薦度:
標簽: 三大 my mysql
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 欧美性xxxxx| 国产第一页精品 | 国产成人一区二区三区小说 | 欧美日韩色视频在线观看 | 国产精品久久一区二区三区 | 国产在线一区二区三区四区 | 日韩大片在线观看 | 操比网站| 国产 日韩 欧美 高清 | 成a人片亚洲日本久久 | 日韩精品成人免费观看 | 亚洲国产精品免费视频 | 国产在线观看第一页 | 亚洲另类网 | 91成人午夜性a一级毛片 | 国产区网址 | 久久精品国产亚洲精品2020 | 国产免费精彩视频 | 欧美一区二区视频在线观看 | 一区精品在线 | 免费国产一区 | 综合视频在线 | 欧美1页 | 亚洲午夜久久久精品影院 | 欧美精品v日韩精品v国产精品 | 国产不卡精品一区二区三区 | 久久国产精品成人免费古装 | 亚洲色图欧美 | 亚洲精品第一页 | 久久久久久亚洲精品中文字幕 | 国产成人久久久精品一区二区三区 | 在线日韩亚洲 | 亚洲精品国产成人99久久 | 亚洲 欧美 91 | 亚洲色图第1页 | 亚洲欧美日韩专区 | 激情一区二区三区 | caoprom在线| 中文字幕日韩一区二区三区不卡 | 亚洲精品自产拍在线观看app | 久久99久久精品国产99热 |