国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

詳解 MySQL的FreeList機制

瀏覽:7日期:2023-10-08 17:11:57

一、前言

MySQL啟動后,BufferPool就會被初始化,在你沒有執行任何查詢操作之前,BufferPool中的緩存頁都是一塊塊空的內存,未被使用過也沒有任何數據保存在里面。

而且你也知道了通過緩沖頁的描述信息可以直接且唯一的找到它所指向的緩存頁。

那你有沒有想過,我們從磁盤里面讀取出來的 數據頁 應該放到那個緩沖頁中去呢?

這個問題就引出了Free List。

二、Free List

其實Free List是Buffer Pool中基于緩存頁描述信息 組織起來的雙向鏈表。換言之,Free List中的每一個結點都是緩存頁對應的描述信息。并且通過描述信息可以找到指定的緩存頁(緩存頁)

詳解 MySQL的FreeList機制

InnoDB設計Free List的初衷就是為了解決上面說的問題。

如果這個緩存頁中沒有存儲任何數據,那么它對應的描述信息就會被維護進Free List中。這時當你想把從磁盤中讀取出一個數據頁放入緩存頁中的話,就得先從Free List中找一個節點(Free List中的所有節點都會指向一個從未被使用過的緩存頁),那接著就可以把你讀取出來的這個數據頁放入到該節點指向的緩存頁中。

相應的:當數據頁中被放入數據之后。它對應的描述信息塊會被從Free List中移出。

三、如何判斷數據頁有沒有在緩存中?

你會不會納悶MySQL怎么知道剛讀取出來的這個數據頁有沒有在緩存頁中呢?

這個功能的實現依托于另一個數據結構:hash table

key = 表空間號+數據頁號

value = 緩存頁地址

如果存在于hash table中,那就說明該數據頁已經存在于Buffer Pool中了,優先使用Buffer Pool中的緩存頁。相信你肯定能想到為啥優先使用Buffer Pool中的緩存頁吧!首先免去了磁盤的隨機IO,其次緩存頁中的數據可能是已經被修改了的臟數據。

以上就是詳解 MySQL的FreeList機制的詳細內容,更多關于MySQL FreeList機制的資料請關注好吧啦網其它相關文章!

標簽: MySQL 數據庫
相關文章:
主站蜘蛛池模板: 韩国免费网站成人 | 国模在线播放 | 亚洲精品一二三四区 | 在线免费一区 | 国产精品久久久久影院 | 成年女人看片免费视频频 | 在线一区免费播放 | 欧美xxx国产xxx | 在线观看国产欧美 | 欧美激情久久久久久久久 | 韩国一大片a毛片 | 杨幂丝袜国产福利视频 | 在线日韩三级 | 日韩精品亚洲一级在线观看 | 国内自拍亚洲 | 成年人三级黄色片 | 国产精品亚洲玖玖玖在线靠爱 | 欧美成人免费大片888 | 精品久久香蕉国产线看观看亚洲 | 在线综合视频 | 亚洲涩涩精品专区 | 国产日韩欧美视频在线 | 深夜福利国产 | 美美女下面被cao爽 美女131爽爽爽做爰中文视频 | 亚洲高清国产品国语在线观看 | 国产精品日本一区二区不卡视频 | 日本成人免费在线 | 国产成人亚洲精品影院 | 欧美激情伦妇在线观看 | 玖草| 真实国产乱子伦高清 | 亚洲国产成人久久精品图片 | 5x社区直接进入一区二区三区 | 日韩一级一欧美一级国产 | 国产成人精品免费视频网页大全 | 国内自拍网站 | 69凹凸国产成人精品视频 | 国产在线不卡午夜精品2021 | 国产91久久久久久久免费 | 欧美成人午夜视频免看 | 能在线观看的一区二区三区 |