欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > 詳解MySQL中的緩沖池(buffer pool)

詳解MySQL中的緩沖池(buffer pool)

熱門標簽:曲靖移動外呼系統公司 地圖標注費用是多少 電話外呼系統改號 南昌三維地圖標注 怎樣在地圖標注銷售區域 外呼系統打電話上限是多少 啥是企業400電話辦理 武漢網絡外呼系統服務商 百應電話機器人優勢

Mysql 中數據是要落盤的,這點大家都知道。讀寫磁盤速度是很慢的,尤其和內存比起來更是沒的說。但是,我們平時在執行 SQL 時,無論寫操作還是讀操作都能很快得到結果,并沒有預想中的那么慢。

可能你會說我有索引啊,有索引當然快了。但是鐵子,索引文件也是存儲在磁盤上的,查找過程會產生磁盤 I/O。如果同時對某行數據進行多次操作,那豈不是要重復產生很多次磁盤 IO 嗎?

可能你想到了,那我把數據存在內存里不就可以了嗎?內存速度比磁盤快,這準沒毛病。沒錯,那該怎么存呢? 這就是我們今天所要講的主題——緩沖池(buffer pool)。

各位看官,請跟我來~

圖注:思維導圖

初識緩沖池

上邊我們提到過了,執行 SQL 對某一行進行操作時,總不能每次都直接進行磁盤操作吧。好歹有個緩沖地帶,不然每次都深入老巢這誰受得了。

這不緩沖池就應運而生了,簡單來說就是一塊內存區域。它存在的原因之一是為了避免每次都去訪問磁盤,把最常訪問的數據放在緩存里,提高數據的訪問速度。

了解了它的作用,接下來讓我們先來看下緩沖池在整個 Mysql 架構里處于什么樣的地方,有一個宏觀的認識。

我們再來看看它的內部組成部分。在緩沖池中,除數據頁和索引頁外還有多種類型:

緩沖池的應用

緩沖池你也了解了,可能此時你最關注的是它在 SQL 執行時起了一個什么樣的作用。上篇文章中我們簡單的提到過一條 SQL 語句的執行過程,但并未涉及到緩沖池相關的問題。這期我們仍是以一條 SQL 來作為切入點。

當一條 SQL 執行的時候,如果是讀操作,要查找的數據所在的數據頁在內存中時,則將結果返回。否則會把對應的數據頁加載到內存中,然后再返回結果。

同樣對于寫操作來說。如果要修改的行所在的數據頁在內存中,則修改后返回對應的結果(當然還有后續操作)。如果不在的話,則會從磁盤里將該行所對應的數據頁讀到內存中再進行修改。

好了,現在讓我們回到開始時候的問題。為什么操作磁盤慢,但是 SQL 執行卻不慢呢。到這里相信你也差不多知道了吧。

緩沖池的存在,很大程度減少了磁盤 I/O 帶來的開銷。要操作的數據行所在的數據頁如果存在于緩存中的話,就不需要從磁盤中進行讀取。這樣在執行后就可以很快拿到結果。

緩沖池的預讀機制

我們可以看出來,只要不存在或減少磁盤 I/O,執行速度自然就會變快。那么對于加載數據頁這種無法避免的磁盤 I/O 來說是否有更好的方式呢?既然避免不了,那減少磁盤 I/O 的次數總可以吧?

這就是我們要講的 Mysql 中「預讀」的新特性,它是 Innodb 通過在緩沖池中提前讀取多個數據頁來優化 I/O 的一種方式。因為磁盤讀寫的時候,是按照頁的方式來讀取的(你可以理解為固定大小的數據,例如一頁數據為 16K),每次至少讀入一頁的數據,如果下次讀取的數據就在頁中,就不用再去磁盤上讀取了,從而減少了磁盤 I/O。

可以在命令行通過如下命令查看對應的頁大小:

緩沖池的空間管理

你可能會有疑問,緩沖池這么洋氣的東西,為什么不把所有的數據都放到緩沖池里呢?這樣速度豈不是美滋滋,放到磁盤里慢的跟老牛拉車一樣。 

哎,哥,醒醒,拋開內存的易失性不談,緩沖池也是有大小限制的。那你可能又有疑惑了,既然緩沖池有大小限制,那我每次都讀入的數據頁怎么來管理呢。別的數據頁都占了地兒了,哪有我的位置?

這里我們來聊聊緩沖池的空間管理,其實對緩沖池進行管理的關鍵部分是如何安排進池的數據并且按照一定的策略淘汰池中的數據,保證池中的數據不“溢出”,同時還能保證常用數據留在池子中。

傳統 LRU 淘汰法 

緩沖池是基于傳統的 LRU 方法來進行緩存頁管理的,我們先來看下如果使用 LRU 是如何管理的。

LRU,全稱是 Least Recently Used,中文名字叫作「最近最少使用」。從名字上就很容易理解了。

這里分兩種情況:

(1)緩存頁已在緩沖池中

這種情況下會將對應的緩存頁放到 LRU 鏈表的頭部,無需從磁盤再進行讀取,也無需淘汰其它緩存頁。

如下圖所示,如果要訪問的數據在 6 號頁中,則將 6 號頁放到鏈表頭部即可,這種情況下沒有緩存頁被淘汰。

 (2)緩存頁不在緩沖池中

緩存頁不在緩沖中,這時候就需要從磁盤中讀入對應的數據頁,將其放置在鏈表頭部,同時淘汰掉末尾的緩存頁 

如下圖所示,如果要訪問的數據在 60 號頁中,60 號頁不在緩沖池中,此時加載進來放到鏈表的頭部,同時淘汰掉末尾的 17 號緩存頁。

是不是看上去很簡單,同時也能滿足緩沖池淘汰緩存頁的方法?但是我們來思考幾個問題:

預讀失效

上面我們提到了緩沖池的預讀機制可能會預先加載相鄰的數據頁。假如加載了 20、21 相鄰的兩個數據頁,如果只有頁號為 20 的緩存頁被訪問了,而另一個緩存頁卻沒有被訪問。此時兩個緩存頁都在鏈表的頭部,但是為了加載這兩個緩存頁卻淘汰了末尾的緩存頁,而被淘汰的緩存頁卻是經常被訪問的。這種情況就是預讀失效,被預先加載進緩沖池的頁,并沒有被訪問到,這種情況是不是很不合理。

緩沖池污染 
還有一種情況是當執行一條 SQL 語句時,如果掃描了大量數據或是進行了全表掃描,此時緩沖池中就會加載大量的數據頁,從而將緩沖池中已存在的所有頁替換出去,這種情況同樣是不合理的。這就是緩沖池污染,并且還會導致 MySQL 性能急劇下降。

冷熱數據分離

這樣看來,傳統的 LRU 方法并不能滿足緩沖池的空間管理。因此,Msyql 基于 LRU 設計了冷熱數據分離的處理方案。

也就是將 LRU 鏈表分為兩部分,一部分為熱數據區域,一部分為冷數據區域。

 

當數據頁第一次被加載到緩沖池中的時候,先將其放到冷數據區域的鏈表頭部,1s(由 innodb_old_blocks_time 參數控制) 后該緩存頁被訪問了再將其移至熱數據區域的鏈表頭部。

 

可能你會有疑惑了,為什么要等 1s 后才將其移至熱數據區域呢?你想想,如果數據頁剛被加載到冷數據區就被訪問了,之后再也不訪問它了呢?這不就造成熱數據區的浪費了嗎?要是 1s 后不訪問了,說明之后可能也不會去頻繁訪問它,也就沒有移至熱緩沖區的必要了。當緩存頁不夠的時候,從冷數據區淘汰它們就行了。 

另一種情況,當我的數據頁已經在熱緩沖區了,是不是緩存頁只要被訪問了就將其插到鏈表頭部呢?不用我說你肯定也覺得不合理。熱數據區域里的緩存頁是會被經常訪問的,如果每訪問一個緩存頁就插入一次鏈表頭,那整個熱緩沖區里就異常騷動了,你想想那個畫面。

那咋整呢?Mysql 中優化為熱數據區的后 3/4 部分被訪問后才將其移動到鏈表頭部去,對于前 1/4 部分的緩存頁被訪問了不會進行移動。

好了,到這里關于 buffer pool  的知識就講完了。這期里我們講了 buffer pool 能使 SQL 執行變快的原因,同時還講了有關 buffer pool 空間的管理方式。歡迎在留言區里進行討論。

總結 

緩沖池的應用

緩沖池很大程度減少了磁盤 I/O 帶來的開銷,通過將操作的數據行所在的數據頁加載到緩沖池可以提高 SQL 的執行速度。

緩沖池的預讀機制

為了減少磁盤 I/O,Innodb 通過在緩沖池中提前讀取多個數據頁來進行優化,這種方式叫作預讀。

緩沖池的空間管理

  • 傳統的LRU方法對于緩沖池來說,會導致預讀失效和緩沖池污染兩種情況,因此這種傳統的方式并不適用緩沖池的空間管理。
  • 基于對 LRU 方法的優化,Msyql 設計了冷熱數據分離的處理方案,將LRU鏈表分為熱數據區和冷數據區兩部分,這樣就可以解決預讀失效和緩沖池污染的情況。 

以上就是詳解MySQL中的緩沖池(buffer pool)的詳細內容,更多關于MySQL 緩沖池(buffer pool)的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • MySQL Innodb關鍵特性之插入緩沖(insert buffer)
  • MySQL的查詢緩存和Buffer Pool
  • mysql優化的重要參數 key_buffer_size table_cache
  • 優化mysql之key_buffer_size設置
  • mysql read_buffer_size 設置多少合適
  • mysql Sort aborted: Out of sort memory, consider increasing server sort buffer size的解決方法
  • 從MySQL的源碼剖析Innodb buffer的命中率計算
  • php中mysql操作buffer用法詳解
  • Mysql優化調優中兩個重要參數table_cache和key_buffer
  • mysql Key_buffer_size參數的優化設置
  • mysqldump造成Buffer Pool污染的研究
  • MySQL的join buffer原理

標簽:甘南 隨州 資陽 荊州 吉林 錦州 黑河 滄州

巨人網絡通訊聲明:本文標題《詳解MySQL中的緩沖池(buffer pool)》,本文關鍵詞  詳解,MySQL,中的,緩沖,池,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《詳解MySQL中的緩沖池(buffer pool)》相關的同類信息!
  • 本頁收集關于詳解MySQL中的緩沖池(buffer pool)的相關信息資訊供網民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    日本黄色小说视频| 国产伦精品一区二区三区视频女| 99精品国产99久久久久久白柏| 丰满白嫩尤物一区二区| 波多野洁衣一区| 中国黄色片视频| 香蕉视频黄色在线观看| 国产熟女一区二区| 欧美性生交大片| 91黄色免费版| 欧美一二三在线| 欧美国产成人精品| 亚洲卡通动漫在线| 日韩成人午夜精品| 国产成人免费在线观看| 91免费在线播放| 午夜一区二区三区免费| 一区二区国产精品精华液| 欧美日韩三级在线| 国产免费无遮挡吸奶头视频 | 无码av免费一区二区三区试看| 日本成人在线一区| proumb性欧美在线观看| www在线观看免费视频| 91成人免费在线视频| 久久久欧美精品sm网站| 亚洲一区二区欧美| 国产99久久久国产精品潘金| 添女人荫蒂视频| 欧美日韩黄视频| 亚洲日本一区二区| 国产精品一卡二卡| 国产真实乱人偷精品人妻| 欧美日本精品一区二区三区| 日韩一区欧美小说| 国产福利一区二区三区视频| 精品人妻互换一区二区三区| 欧美日韩电影一区| 亚洲精选在线视频| 成人va在线观看| 成年人二级毛片| 欧美经典三级视频一区二区三区| 美女被吸乳得到大胸91| 精品国产一区在线| 91精品在线观看入口| 亚洲电影激情视频网站| 黑人巨大猛交丰满少妇| 欧美在线看片a免费观看| 亚洲美女区一区| 超碰人人cao| 色婷婷综合久久久久中文一区二区| 中文字幕免费视频| 国产亚洲一区二区三区| 蜜桃免费网站一区二区三区| 亚洲精品国产一区二区三区四区在线| 91网站黄www| 91精选在线观看| 成人激情黄色小说| 欧美一级生活片| 五月天一区二区三区| 国产性生活毛片| 91精品国产91久久久久久一区二区| 亚洲欧洲美洲综合色网| 国产69精品久久777的优势| 亚洲色成人网站www永久四虎| 日韩天堂在线观看| 美女一区二区三区在线观看| 国产av自拍一区| 久久色在线视频| 国产69精品久久久久毛片| 亚洲av鲁丝一区二区三区| 亚洲国产美国国产综合一区二区| 人妻互换一二三区激情视频| 精品国产一区二区三区久久影院 | 亚洲永久精品国产| 欧类av怡春院| 国产精品九色蝌蚪自拍| 少妇极品熟妇人妻无码| 久久在线观看免费| 97久久精品人人爽人人爽蜜臀| 日韩三级伦理片妻子的秘密按摩| 国产一区二区主播在线| 欧美三电影在线| 国产精品 欧美精品| 777奇米四色成人影色区| 懂色av噜噜一区二区三区av| 日韩一区二区三区视频在线| 风流少妇一区二区| 亚洲精品一区二区三区香蕉| 午夜免费福利影院| 一区二区三区欧美激情| 手机看片国产日韩| 国产精品久久久久久久久搜平片| www在线观看免费视频| 久久精品99国产精品| 久久―日本道色综合久久| 亚洲天堂av中文字幕| 国产盗摄精品一区二区三区在线| 欧美一级夜夜爽| 蜜桃视频无码区在线观看| 一区二区久久久| 免费在线观看一级片| 国产精品系列在线观看| 精品国产精品一区二区夜夜嗨 | 亚洲香蕉伊在人在线观| 色婷婷久久久久swag精品| 国产精品综合视频| 久久精品视频一区二区| 中文字幕人妻一区二区| 亚洲va欧美va人人爽| 欧美日韩在线不卡| 日韩高清一二三区| 亚洲v中文字幕| 久久精品在线观看| 色哟哟亚洲精品| 国产调教打屁股xxxx网站| 亚洲综合在线视频| 91精品啪在线观看国产60岁| 最近中文字幕无免费| 免费在线观看视频一区| 精品国产亚洲在线| 在线观看av中文字幕| 秋霞影院一区二区| 久久蜜桃av一区二区天堂| 精品丰满少妇一区二区三区| 国产成人精品影院| 亚洲视频在线观看一区| 91国偷自产一区二区三区成为亚洲经典 | 国产蜜臀97一区二区三区| 熟女av一区二区| av电影在线观看不卡| 亚洲一级二级三级| 欧美成人精品高清在线播放| 免费精品在线视频| 亚洲av午夜精品一区二区三区| 毛片av一区二区| 亚洲欧美区自拍先锋| 精品伦理精品一区| 欧美猛男gaygay网站| 亚洲色婷婷一区二区三区| 国产美女永久免费无遮挡| 国产69视频在线观看| 美女被爆操网站| 91香蕉视频污在线| 风间由美一区二区三区在线观看| 韩国av一区二区三区在线观看| 亚洲天堂av老司机| 精品国产百合女同互慰| 欧美福利一区二区| 在线免费观看日韩欧美| 呻吟揉丰满对白91乃国产区| 日本天堂在线播放| 福利一区在线观看| 国产一区二区三区久久悠悠色av | 91精品国产一区二区| 欧洲日韩一区二区三区| 日本不卡一二区| 朝桐光av一区二区三区| 成人av网站免费| 国产精品69久久久久水密桃| 蜜桃av噜噜一区二区三区小说| 亚洲一区免费观看| 亚洲综合色自拍一区| 亚洲欧洲美洲综合色网| 国产精品人成在线观看免费| 久久蜜桃一区二区| 精品欧美一区二区三区精品久久 | xxxxx99| 青青青视频在线免费观看| 最近中文字幕免费视频| 魔女鞋交玉足榨精调教| 中文字幕免费看| 免费毛片视频网站| 欧美性猛交xxxx乱| 亚洲精品国产精品国自| 日本美女xxx| 99鲁鲁精品一区二区三区| 国产av 一区二区三区| 日韩精品一区二区亚洲av性色| 蜜臀av午夜精品久久| 色老汉av一区二区三区| 91久久国产最好的精华液| 欧美日韩色综合| 精品国产一二三区| 国产精品久久久久久久久图文区 | 日韩精彩视频在线观看| 国产综合色在线| 91在线你懂得| 中文字幕 日本| 欧美一区二区三区观看| 91久久精品网| 欧美电视剧免费观看| 久久无码av三级| 亚洲色图欧美在线| 日精品一区二区| 成人综合激情网| 91精品小视频| 国产精品精品软件男同| 欧美一区二区三区免费在线看 | 欧美色视频在线|