圖解MySQL(5)-Buffer Pool的flush鏈表

      網友投稿 800 2025-04-04

      1 內存碎片


      1.1 啥是BP的內存碎片?

      BP劃分完全部緩存頁和描述信息塊后,還剩點內存,但卻再也放不下新的緩存頁。

      1.2 如何減少內存碎片?

      DB在BP中劃分緩存頁時,會讓所有緩存頁和描述信息塊都緊密挨一起,盡可能減少內存碎片。

      2 臟數據頁

      增刪改時,若發現數據頁沒緩存,就會從free鏈表找空閑緩存頁,讀取到BP的緩存頁,但若已緩存,則下次直接使用緩存頁。

      所以你要更新的數據頁都會在BP緩存頁,讓你能在內存中直接執行增刪改。所以肯定會更新BP緩存頁數據,一旦更新了,則緩存頁數據和磁盤的數據頁數據,就不一致了,這時的BP緩存頁就是臟數據,即為臟頁。

      圖解MySQL(5)-Buffer Pool的flush鏈表

      2.1 哪些緩存頁是臟頁

      最終這些在內存里更新的臟頁數據,都是要被刷回磁盤文件的。

      但不可能所有緩存頁都刷盤,因為有的緩存頁可能因查詢而被讀取到BP,可能根本沒修改過!

      于是DB引入flush鏈表,類似free鏈表,通過緩存頁的描述信息塊的兩個指針,讓被修改過的緩存頁的描述信息塊組成雙向鏈表。

      被修改過的緩存頁,都會將其描述信息塊加入到flush鏈表中去,flush就是這些都是臟頁,后續都是要flush刷新到磁盤:

      flush鏈表構造演示

      比如緩存頁01被修改了數據,那他就是臟頁了,就加入flush鏈表。?現在flush鏈表的基礎節點就指向block01節點,接著比如緩存頁02被更新,他也是臟頁,那他的描述信息塊也要被加入flush鏈表。

      可見,當你更新緩存頁時,通過變換緩存頁中的描述數據塊的flush鏈表的指針,就能將臟頁的描述數據塊組成一個雙向鏈表,即flush鏈表,而且flush鏈表的基礎節點會指向起始節點和尾巴節點。通過次flush鏈表,就能記錄下來哪些緩存頁是臟頁了。

      Mysql 數據結構

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:excel2007斜線表頭如何制作
      下一篇:智能制造中的生產管理(智能生產與管理)
      相關文章
      亚洲精品高清无码视频| 4338×亚洲全国最大色成网站| 亚洲中文字幕成人在线| 亚洲情A成黄在线观看动漫软件 | 亚洲香蕉免费有线视频| 亚洲AV无码专区亚洲AV伊甸园 | 天堂亚洲国产中文在线| 亚洲精品二三区伊人久久| 亚洲天堂一区二区三区四区| 亚洲成a人不卡在线观看| 亚洲国产精品午夜电影| 亚洲中文久久精品无码1| 亚洲a级在线观看| 亚洲黄页网在线观看| 亚洲色偷精品一区二区三区| 日韩亚洲不卡在线视频中文字幕在线观看| 亚洲国产精品综合福利专区| 亚洲成a人片在线网站| 亚洲综合丁香婷婷六月香| 国产精品高清视亚洲一区二区| 亚洲狠狠成人综合网| 亚洲欧美成人一区二区三区| 亚洲AV综合色区无码一二三区 | 性xxxx黑人与亚洲| 亚洲已满18点击进入在线观看| 亚洲成人激情小说| 亚洲色大情网站www| 亚洲aⅴ无码专区在线观看春色 | 亚洲高清专区日韩精品| 亚洲丝袜美腿视频| 亚洲成人黄色网址| 在线观看亚洲AV日韩AV| 亚洲国产成人手机在线观看| 亚洲电影日韩精品 | 亚洲AV无码精品蜜桃| 亚洲人成电影网站色| 丁香亚洲综合五月天婷婷| 亚洲片国产一区一级在线观看| 国产亚洲av人片在线观看| 亚洲国产精品一区第二页| 337p欧洲亚洲大胆艺术|