真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

MySQL數(shù)據(jù)庫中FreeList的機(jī)制是什么-創(chuàng)新互聯(lián)

今天就跟大家聊聊有關(guān)MySQL數(shù)據(jù)庫中FreeList的機(jī)制是什么,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

創(chuàng)新互聯(lián)建站主營阿克蘇網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都APP應(yīng)用開發(fā),阿克蘇h5小程序定制開發(fā)搭建,阿克蘇網(wǎng)站營銷推廣歡迎阿克蘇等地區(qū)企業(yè)咨詢

一、前言

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

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

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

這個問題就引出了Free List。

二、Free List

其實(shí)Free List是Buffer Pool中基于緩存頁描述信息 組織起來的雙向鏈表。換言之,F(xiàn)ree List中的每一個結(jié)點(diǎn)都是緩存頁對應(yīng)的描述信息。并且通過描述信息可以找到指定的緩存頁(緩存頁)

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

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

相應(yīng)的:當(dāng)數(shù)據(jù)頁中被放入數(shù)據(jù)之后。它對應(yīng)的描述信息塊會被從Free List中移出。

三、如何判斷數(shù)據(jù)頁有沒有在緩存中?

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

這個功能的實(shí)現(xiàn)依托于另一個數(shù)據(jù)結(jié)構(gòu):hash table

key = 表空間號+數(shù)據(jù)頁號

value = 緩存頁地址

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

以上就是詳解 MySQL的FreeList機(jī)制的詳細(xì)內(nèi)容,更多關(guān)于MySQL FreeList機(jī)制的資料請關(guān)注創(chuàng)新互聯(lián)其它相關(guān)文章!

看完上述內(nèi)容,你們對MySQL數(shù)據(jù)庫中FreeList的機(jī)制是什么有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。


當(dāng)前文章:MySQL數(shù)據(jù)庫中FreeList的機(jī)制是什么-創(chuàng)新互聯(lián)
當(dāng)前URL:http://weahome.cn/article/cddcsj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部