buffer cache部分原理(LRU)
當一個server process到buffer cache訪問資料塊的時候,首先他要搜尋LRU列表的MRU看看他所要找的資料塊在不在我們buffer_cache中,如果在就直接訪問這個block,此時的命中是在buffer中,如果沒有找到所需要的資料,這個時候,就要從資料庫檔案中讀取這個block到buffer cache中來,然後在訪問這個block,這個時候server process也會在LRU列表中的空閒空間搜尋並尋找一個大小合適的空閒快取,如果沒有搜尋到空閒快取,則從LRU端開始繼續搜尋可重用的block或者達到查詢的最大限制(40%),這個期間如果也發現了LRU列表中還沒有移入dirty列表中的髒資料庫塊則會將這個資料塊移入dirty列表中,等待dbwn程式將他們寫入資料檔案。如果找到空間後,就從磁碟將資料讀入到我們所找到的空間快取中,並將這個快取塊移LRU列表的MRU端。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12361284/viewspace-489/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- LRU cache原理及go實現Go
- LRU Cache的原理和python的實現Python
- Leetcode LRU CacheLeetCode
- Android快取機制-LRU cache原理與用法Android快取
- IO之核心buffer----"buffer cache"
- Oracle Cache Buffer ChainsOracleAI
- DB BUFFER LRU 列表的latch等待
- 33、buffer_cache_3(redo的產生、LRBA、buffer cache裡的等待事件)事件
- Buffer Cache以及buffer busy waits/gc相關事件AIGC事件
- 【BUFFER】Oracle buffer cache之 latch 學習記錄Oracle
- 【Cache】將常用的“小表”快取到Buffer Cache快取
- Linux Buffer/Cache 的區別Linux
- buffer與cache的區別
- 動手實現一個 LRU cache
- LRU cache快取簡單實現快取
- 用 Go 實現一個 LRU cacheGo
- 清理buffer/cache/swap的方法梳理
- PostgreSQL DBA(89) - Linux(Buffer vs Cache)SQLLinux
- Linux記憶體、Swap、Cache、BufferLinux記憶體
- InnoDB Buffer Pool改進LRU頁面置換
- Cache 和 Buffer 的區別在哪裡?
- Cache 和 Buffer 有什麼區別?
- Python 的快取機制: functools.lru_cachePython快取
- 通過原始碼學習@functools.lru_cache原始碼
- Python 中 lru_cache 的使用和實現Python
- buffer cache深度分析及效能調整(五)
- buffer cache深度分析及效能調整(四)
- buffer cache深度分析及效能調整(六)
- 從 LRU Cache 帶你看面試的本質面試
- Linux工具效能調優系列二:buffer和cacheLinux
- Linux如何手動釋放Swap、Buffer和CacheLinux
- iOS SDWebImgae Cache原理iOSWeb
- [20231023]備庫與alter system flush buffer_cache.txt
- 手動釋放Linux上的Swap、Buffer和CacheLinux
- LRU演算法原理解析演算法
- Linux 核心101:cache原理Linux
- Chromium Command Buffer原理解析
- Cache和Buffer都是快取,有什麼區別?Linux快取Linux
- Guava 原始碼分析(Cache 原理)Guava原始碼