欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解 MySQL的FreeList機(jī)制

 更新時(shí)間:2020年11月25日 15:39:22   作者:賜我白日夢(mèng)  
這篇文章主要介紹了MySQL的FreeList機(jī)制的相關(guān)資料,幫助大家更好的理解和使用MySQL 數(shù)據(jù)庫(kù),感興趣的朋友可以了解下

一、前言

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

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

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

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

二、Free List

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

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

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

你會(huì)不會(huì)納悶MySQL怎么知道剛讀取出來的這個(gè)數(shù)據(jù)頁(yè)有沒有在緩存頁(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中,那就說明該數(shù)據(jù)頁(yè)已經(jīng)存在于Buffer Pool中了,優(yōu)先使用Buffer Pool中的緩存頁(yè)。相信你肯定能想到為啥優(yōu)先使用Buffer Pool中的緩存頁(yè)吧!首先免去了磁盤的隨機(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)文章!

相關(guān)文章

  • mysql刪除表數(shù)據(jù)如何恢復(fù)

    mysql刪除表數(shù)據(jù)如何恢復(fù)

    這篇文章主要介紹了mysql刪除表數(shù)據(jù)如何恢復(fù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • mysql/Java服務(wù)端對(duì)emoji的支持與問題解決方法詳解

    mysql/Java服務(wù)端對(duì)emoji的支持與問題解決方法詳解

    這篇文章主要介紹了mysql/Java服務(wù)端對(duì)emoji的支持與問題解決方法,結(jié)合實(shí)例形式分析了mysql/Java服務(wù)端對(duì)emoji字符集存儲(chǔ)及支持問題解決方法,需要的朋友可以參考下
    2019-10-10
  • MySQL 使用 ORDER BY 排序和 DELETE 刪除記錄的操作過程

    MySQL 使用 ORDER BY 排序和 DELETE 刪

    這篇文章主要介紹了MySQL 使用 ORDER BY 排序和 DELETE 刪除記錄的操作過程,即數(shù)據(jù)庫(kù)查詢與數(shù)據(jù)操作,本文通過示例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2023-11-11
  • MySQL數(shù)據(jù)庫(kù)壓縮版本安裝與配置詳細(xì)教程

    MySQL數(shù)據(jù)庫(kù)壓縮版本安裝與配置詳細(xì)教程

    今天教各位小伙伴怎么安裝及配置Mysql數(shù)據(jù)庫(kù),文中有非常詳細(xì)的圖文解說及代碼示例,對(duì)剛?cè)腴Tmysql的小伙伴們很有幫助,需要的朋友可以參考下
    2021-05-05
  • MySQL 自動(dòng)備份與數(shù)據(jù)庫(kù)被破壞后的恢復(fù)方法

    MySQL 自動(dòng)備份與數(shù)據(jù)庫(kù)被破壞后的恢復(fù)方法

    當(dāng)數(shù)據(jù)庫(kù)服務(wù)器建立好以后,我們首先要做的不是考慮要在這個(gè)支持?jǐn)?shù)據(jù)庫(kù)的服務(wù)器運(yùn)行哪些受MySQL提攜的程序,而是當(dāng)數(shù)據(jù)庫(kù)遭到破壞后,怎樣安然恢復(fù)到最后一次正常的狀態(tài),使得數(shù)據(jù)的損失達(dá)到最小。
    2010-03-03
  • MySQL?EXPLAIN執(zhí)行計(jì)劃解析

    MySQL?EXPLAIN執(zhí)行計(jì)劃解析

    本文主要介紹了MySQL?EXPLAIN執(zhí)行計(jì)劃解析,通過MySQL?EXPLAIN執(zhí)行計(jì)劃的各個(gè)字段的含義以及使用方式。感興趣的小伙伴可以參考一下
    2022-08-08
  • 簡(jiǎn)單談?wù)凪ySQL5.7 JSON格式檢索

    簡(jiǎn)單談?wù)凪ySQL5.7 JSON格式檢索

    MySQL 5.7.7 labs版本開始InnoDB存儲(chǔ)引擎已經(jīng)原生支持JSON格式,該格式不是簡(jiǎn)單的BLOB類似的替換。下面我們來詳細(xì)探討下吧
    2017-01-01
  • MySQL性能指標(biāo)TPS+QPS+IOPS壓測(cè)

    MySQL性能指標(biāo)TPS+QPS+IOPS壓測(cè)

    這篇文章主要介紹了MySQL性能指標(biāo)TPS+QPS+IOPS壓測(cè),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下
    2022-08-08
  • MySQL數(shù)據(jù)庫(kù)安裝后服務(wù)無法啟動(dòng)的解決辦法

    MySQL數(shù)據(jù)庫(kù)安裝后服務(wù)無法啟動(dòng)的解決辦法

    作為一名程序猿,必不可少的便是和mysql打交道,那當(dāng)mysql故障,下面這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)庫(kù)安裝后服務(wù)無法啟動(dòng)的解決辦法,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • MySQL Threads_running飆升與慢查詢的相關(guān)問題解決

    MySQL Threads_running飆升與慢查詢的相關(guān)問題解決

    這篇文章主要介紹了MySQL Threads_running飆升與慢查詢的問題解決,幫助大家更好的理解和學(xué)習(xí)使用MySQL數(shù)據(jù)庫(kù),感興趣的朋友可以了解下
    2021-05-05

最新評(píng)論