4 change buffer
#4.1 基本概念
##change buffer是一種特殊的資料結構,當這些頁面不在緩衝池中時,這些快取都會將變更快取到輔助索引頁面。可能由INSERT,UPDATE或DELETE操作(DML)導致的緩衝變更將在以後透過其他的讀取操作將頁載入到緩衝池中時合併。
相關免費學習推薦:
#如上圖可見,change buffer用的是buffer pool裡的內存,所以不能無限增長。 change buffer大小可透過參數innodb_change_buffer_max_size動態設定。需更新一個資料頁時:例如設定為50:change buffer的大小最多只能佔用buffer pool的50%。
change buffer 實際上也是可持久化的數據,即它不僅在記憶體中有拷貝,也會被寫入磁碟。
4.2 merge
將change buffer中的操作套用到原始資料頁,得到最新結果的過程。4.2.1 觸發時機
4.3 何時使用change buffer
4.4 適用場景
所有普通索引的場景,使用change buffer都可加速嗎? 注意merge才是真正進行資料更新時刻,change buffer主要是將記錄的變更動作快取。所以在一個資料頁做merge前,change buffer記錄變更越多(也就是該資料頁上要更新的次數越多),效益越大。更多相關免費學習推薦:##mysql教學(影片) #
以上是介紹MySQL Buffer pool裡的change buffer的詳細內容。更多資訊請關注PHP中文網其他相關文章!