【Mysql】讀書筆記之--innodb_buffer_pool記憶體的管理
讀書內容:技術內幕第二章
1.記憶體與磁碟
基本流程圖如下:-
在資料庫中進行讀取頁的操作時,首先將磁碟讀取到的頁放入緩衝池中,這個過程稱之為FIX頁到緩衝池,下次再讀取到相同的頁時,先判斷是否在緩衝池中,如果在則直接從緩衝池讀取,如果不在則迴圈FIX的過程
- 在資料庫中進行修改頁的操作時,首先修改緩衝池中的頁,然後再以一定的頻率重新整理到磁碟(checkpoint的重新整理機制)
2.LRU列表
lru列表用來管理bf已讀取到的頁- 讀取到的新頁,放入到LRU列表的midpoint位置,處於lru列表的5/8處,而不是直接放入頭部,midpoint之前稱之為new列表,即熱資料區,之後稱之為old列表,即是非熱資料區
-
-
- 為什麼不直接放入LRU列表的頭部呢?
- 如果直接放入頭部,某些sql如:(select * from 大表 )可能會使一些熱資料刷出lru列表,下次讀的時候又要從磁碟重新整理到緩衝池!從而影響緩衝池的效率!為了解決這個問題,引入另一個引數innodb_old_blocks_time來管理LRu列表,
- 這個參數列示,頁讀取到midpoint位置之後還需要等待多久才會被加入到LRU列表的熱端!
3.Free列表
Free列表管理bf未操作過的頁-
資料庫剛啟動時,LRU列表是空的,這時頁都是存放在free列表中的,當需要讀取新的頁時,首先從free列表查詢是否有可用的空閒頁,有就從free列表刪除,遷移至LRu列表。如果free列表沒有可用的空閒頁,則根據LRU演算法,淘汰列表末尾的頁,將記憶體分配給新的頁。
- old頁加入到new頁我們就稱之為page made young
-
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29096438/viewspace-2135018/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- JVM讀書筆記之記憶體管理JVM筆記記憶體
- JVM讀書筆記之java記憶體結構JVM筆記Java記憶體
- Objective-C高階程式設計讀書筆記之記憶體管理Object程式設計筆記記憶體
- JVM讀書筆記之垃圾收集與記憶體分配JVM筆記記憶體
- 《Windows核心情景分析》讀書筆記:windows記憶體管理Windows筆記記憶體
- 讀書筆記:深入解析oracle-第5章 記憶體管理筆記Oracle記憶體
- mysql讀書筆記MySql筆記
- 讀書筆記2-記憶體優化篇筆記記憶體優化
- 《深度探索c++記憶體模型》讀書筆記 (二)C++記憶體模型筆記
- 《深入java虛擬機器》讀書筆記之Java記憶體區域Java虛擬機筆記記憶體
- MySQL記憶體管理MySql記憶體
- 管理的細微讀書筆記之-蘇寧案例筆記
- MySQL 讀書筆記 (一) 體系結構MySql筆記
- MySQL InnoDB的記憶體管理MySql記憶體
- 讀書筆記之五筆記
- 刀口上的管理--讀書筆記筆記
- 記憶體管理兩部曲之實體記憶體管理記憶體
- 記憶體管理兩部曲之虛擬記憶體管理記憶體
- MYSQL的記憶體管理方法MySql記憶體
- JVM讀書筆記之OOMJVM筆記OOM
- 浪潮之巔讀書筆記筆記
- 深入理解JVM讀書筆記一: Java記憶體區域與記憶體溢位異常JVM筆記Java記憶體溢位
- 記憶體管理篇——實體記憶體的管理記憶體
- 記憶體管理 記憶體管理概述記憶體
- mysql鎖機制 讀書筆記MySql筆記
- Mysql索引讀書筆記(待續)MySql索引筆記
- 《深入淺出MySQL》讀書筆記MySql筆記
- 譯-Java記憶體管理白皮書Java記憶體
- 新書《記憶體資料管理》新書記憶體
- 《深入java虛擬機器》讀書筆記之垃圾收集器與記憶體分配策略Java虛擬機筆記記憶體
- MJiOS底層筆記--記憶體管理iOS筆記記憶體
- iOS開發筆記(一):記憶體管理iOS筆記記憶體
- Java的記憶體 -JVM 記憶體管理Java記憶體JVM
- 讀書筆記...筆記
- 讀書筆記筆記
- 《Maven實戰》之讀書筆記Maven筆記
- 《瞬間之美》讀書筆記筆記
- 讀書筆記之MV_DM筆記