您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“Innodb關(guān)鍵特性之怎么刷新鄰接頁”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!
1、工作原理
當刷新一個臟頁時,innodb存儲引擎會檢測該頁所在區(qū)(extent)的所有頁,如果是臟頁,那么一起進行刷新。這樣做的好處顯而易見,通過AIO可以將多個IO寫入操作合并為一個IO操作,增大寫入量,減少了物理寫IO,故該工作機制在傳統(tǒng)機械磁盤下有著顯著的優(yōu)勢。
1、在寫入次數(shù)基本不增加的情況下,增加了寫入的量;
2、加速了臟頁的回收;
3、充分利用double write每次1M寫入的特征;
4、這個功能打開以后會發(fā)現(xiàn)iostat里面的wrqm(合并寫)這個值會比較高;
2、問題考慮
1、是不是可能將不怎么臟的頁進行了寫入,而該頁之后又會很快變成臟頁?
2、固態(tài)硬盤有著較高的 IOPS,是否還需要這個特性?
為此,InnoDB 存儲引擎從 1.2.x 版本開始提供了參數(shù) innodb_flush_neighbors,用來控制是否啟用該特性。對于傳統(tǒng)機械硬盤建議啟用該特性,而對于固態(tài)硬盤有著超高 IOPS 性能的磁盤,則建議將該參數(shù)設(shè)置為 0、即關(guān)閉此特性。
3、參數(shù)控制:innodb_flush_neighbors
mysql>show variables like 'innodb_flush_neighbors'; +-------------------------+-----------------+ | Variable_name | Value | +-------------------------+-----------------+ | innodb_flush_neighbors | 1 | +-------------------------+-----------------+
1,表示打開了刷新鄰接頁的功能,順帶著刷新在 buffer pool 中位于磁盤上相同的 extend 區(qū)的相鄰的臟頁。
0,表示關(guān)閉刷新鄰接頁
2 ,表示刷新在 buffer pool 中位于磁盤上相同的 extend 區(qū)的臟頁。
4、Flush neighbor page的影響
1、對于insert頻繁的系統(tǒng),這個功能比較適合
2、對于update頻繁的系統(tǒng),這個功能可能會帶來一些副作用
1、update順帶著刷新其他頁;
2、對于update頻繁的表,這些頁馬上就臟了,白白浪費寫負載。
“Innodb關(guān)鍵特性之怎么刷新鄰接頁”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。