資料庫緩衝池如何讀取資料?
緩衝池管理器會將經常使用的資料儲存起來,在資料庫頁面讀操作的時候,進行判斷。
首先判斷頁面是否在緩衝池中,如果存在就直接讀取,如果不存在,就會通過記憶體或磁碟將頁面存放在緩衝池中再進行讀取。
執行sql語句的時候更新了緩衝池中的資料,資料是否會馬上同步到磁碟上?
對資料庫的記錄進行修改的時候,首先會修改緩衝池中頁裡面的記錄資訊,然後資料庫會以一定的頻率重新整理到磁碟上,並不是每次發生更新操作就會立刻進行磁碟回寫。緩衝池會採用一種叫做checkpoint的機制將資料會寫到磁碟上,這樣做的好處是提高了資料庫的整體效能。
比如,當緩衝池不夠用時,需要釋放一些不常用的頁,就可以採用強行checkpoint的方式,將不常用的髒頁寫到磁碟上,然後再從緩衝池中將這些頁都釋放掉,這裡髒頁指的是緩衝池中被修改的頁,與磁碟上的資料頁不一致。資料庫緩衝池中沒有需要的頁資料,那麼緩衝池會存在三種讀取資料的方式
資料庫讀取頁的效率總結
如果頁在資料庫緩衝池中,讀取效率最高,如果不在需要去記憶體和磁碟中讀取,相對於磁碟和記憶體,記憶體讀取效率更高。
如果對單個頁讀取,效率較低,採用順序讀取的方式批量對頁進行讀取,平均一頁的讀取效率就會提公升很多,甚至要快於單個頁面在記憶體中的隨機讀取。
記錄極客時間資料庫專欄筆記 極客時間
資料庫緩衝池(Buffer Pool)
innodb儲存引擎是以頁為單位來管理儲存空間的,我們進行的增刪改查操作其實本質上都是在訪問頁面 包括讀頁面 寫頁面 建立新頁面等操作 而磁碟 o需要消耗的時間很多,而在記憶體中進行操作,效率則會高很多,為了能讓資料表或者索引中的資料隨時被我們所用,dbms會申請占用記憶體來作為資料緩衝池,在真正訪...
Mysql資料庫緩衝池學習筆記
1 緩衝池概念 緩衝池簡單來說就是一塊記憶體區域,通過記憶體的速度來彌補磁碟速度較慢對資料庫效能的影響。在資料庫當中讀取頁的操作,首先將從磁碟讀到的頁存放在快取池中,這個過程稱為將頁 fix 在緩衝池中。下一次再讀相同的頁時,首先判斷該頁是不是在緩衝池中。若在,直接讀取。否則,讀取磁碟上的頁。2 那...
執行緒池 資料庫連線池
執行緒池的原理 來看一下執行緒池究竟是怎麼一回事?其實執行緒池的原理很簡單,類似於作業系統中的緩衝區的概念,它的流程如下 先啟動若干數量的執行緒,並讓這些執行緒都處於睡 眠狀態,當客戶端有乙個新請求時,就會喚醒執行緒池中的某乙個睡眠執行緒,讓它來處理客戶端的這個請求,當處理完這個請求後,執行緒又處於...