本篇內(nèi)容介紹了“Innodb關(guān)鍵特性之怎么刷新鄰接頁”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!
創(chuàng)新互聯(lián)于2013年創(chuàng)立,先為蓮都等服務(wù)建站,蓮都等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為蓮都企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(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)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!