濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > 詳解 MySQL的FreeList機(jī)制

詳解 MySQL的FreeList機(jī)制

熱門(mén)標(biāo)簽:北京人工外呼系統(tǒng)價(jià)錢(qián) 福州呼叫中心外呼系統(tǒng)哪家好 天智外呼系統(tǒng) 常州電銷(xiāo)外呼系統(tǒng)一般多少錢(qián) 400電話鄭州申請(qǐng) 地圖標(biāo)注被騙三百怎么辦 云南語(yǔ)音外呼系統(tǒng)平臺(tái) 沃克斯電梯外呼線路圖 房產(chǎn)智能外呼系統(tǒng)品牌

一、前言

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

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

那你有沒(méi)有想過(guò),我們從磁盤(pán)里面讀取出來(lái)的 數(shù)據(jù)頁(yè) 應(yīng)該放到那個(gè)緩沖頁(yè)中去呢?

這個(gè)問(wèn)題就引出了Free List。

二、Free List

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

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

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

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

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

你會(huì)不會(huì)納悶MySQL怎么知道剛讀取出來(lái)的這個(gè)數(shù)據(jù)頁(yè)有沒(méi)有在緩存頁(yè)中呢?

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

key = 表空間號(hào)+數(shù)據(jù)頁(yè)號(hào)

value = 緩存頁(yè)地址

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

以上就是詳解 MySQL的FreeList機(jī)制的詳細(xì)內(nèi)容,更多關(guān)于MySQL FreeList機(jī)制的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • windows下MySQL5.6版本安裝及配置過(guò)程附有截圖和詳細(xì)說(shuō)明
  • Mysql字符串截取函數(shù)SUBSTRING的用法說(shuō)明
  • MySQL創(chuàng)建用戶與授權(quán)方法
  • mysql 添加索引 mysql 如何創(chuàng)建索引
  • 超詳細(xì)mysql left join,right join,inner join用法分析
  • mySQL中replace的用法
  • Mysql查看版本號(hào)的幾種方式
  • Mysql命令行導(dǎo)入sql數(shù)據(jù)
  • Mysql的Root密碼忘記,查看或修改的解決方法(圖文介紹)
  • MySQL數(shù)據(jù)庫(kù)遠(yuǎn)程連接開(kāi)啟方法

標(biāo)簽:拉薩 珠海 沈陽(yáng) 黔東 移動(dòng) 沈陽(yáng) 鹽城 徐州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《詳解 MySQL的FreeList機(jī)制》,本文關(guān)鍵詞  詳解,MySQL,的,FreeList,機(jī)制,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《詳解 MySQL的FreeList機(jī)制》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于詳解 MySQL的FreeList機(jī)制的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    离岛区| 平塘县| 南木林县| 海宁市| 新闻| 天镇县| 张掖市| 略阳县| 昌邑市| 额济纳旗| 天水市| 凤凰县| 彭泽县| 无极县| 新密市| 乌鲁木齐县| 应城市| 噶尔县| 宿迁市| 湘乡市| 涪陵区| 和硕县| 扶风县| 伊通| 安多县| 台南县| 岫岩| 高雄市| 镇康县| 都匀市| 岑巩县| 祁连县| 宜都市| 友谊县| 道孚县| 肇州县| 达日县| 额尔古纳市| 门头沟区| 福建省| 漳州市|