91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL Buffer pool里的change buffer是什么

發布時間:2021-03-29 10:11:10 來源:億速云 閱讀:196 作者:小新 欄目:MySQL數據庫

小編給大家分享一下MySQL Buffer pool里的change buffer是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

4 change buffer

4.1 基本概念

change buffer是一種特殊的數據結構,當這些頁面不在緩沖池中時,這些高速緩存會將更改緩存到輔助索引頁面。可能由INSERT,UPDATE或DELETE操作(DML)導致的緩沖更改將在以后通過其他的讀取操作將頁加載到緩沖池中時合并。
MySQL Buffer pool里的change buffer是什么

相關免費學習推薦:mysql視頻教程

如上圖可見,change buffer用的是buffer pool里的內存,所以不能無限增長。change buffer大小可通過參數innodb_change_buffer_max_size動態設置。
比如設置為50:change buffer的大小最多只能占用buffer pool的50%。

需更新一個數據頁時:

  • 頁在內存,直接更新

  • 頁不在內存,在不影響數據一致性下,InooDB會將這些更新操作緩存于change buffer,而無需從磁盤讀入頁

在下次查詢訪問該數據頁時,才將數據頁讀入內存,然后執行change buffer中與這個頁有關的操作。通過該方式就能保證該數據邏輯的正確性。

change buffer 實際上也是可持久化的數據,即它不僅在內存中有拷貝,也會被寫進磁盤。

4.2 merge

將change buffer中的操作應用到原數據頁,得到最新結果的過程。

4.2.1 觸發時機

  1. 訪問該數據頁

  2. 系統后臺線程定期merge

  3. 數據庫正常關閉(shutdown)的過程

若能將更新操作先記錄在change buffer,減少讀盤,語句執行速度便會明顯提升。且數據讀入內存需要占用buffer pool,因此也能降低內存占用,提高內存利用率。

4.3 何時使用change buffer

  • 對于唯一索引,更新操作都要先判斷該操作是否違反唯一性約束:
    比如,要插入(4,400)記錄,要先判斷表中是否已存k=4記錄,就必須要將數據頁讀入內存來判斷。若都已讀入內存了,那直接更新內存自然很快,沒必要使用change buffer。
    因此,唯一索引的更新不能使用change buffer,只有普通索引可使用

4.4 適用場景

難道普通索引的所有場景,使用change buffer都可加速嗎?

注意merge才是真正進行數據更新時刻,change buffer主要是將記錄的變更動作緩存。所以在一個數據頁做merge前,change buffer記錄變更越多(即該數據頁上要更新的次數越多),收益越大。

  • 寫多讀少業務,頁面在寫完后馬上被訪問到的概率較小,change buffer使用效果最好。常見為賬單、日志類系統。

  • 寫后馬上查詢,將先新記錄在change buffer,但之后由于立即訪問該數據頁,又很快觸發merge,這樣的話隨機訪問IO次數不會減少,反而增加change buffer維護代價,change buffer起了副作用。

以上是“MySQL Buffer pool里的change buffer是什么”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永吉县| 迁安市| 锡林浩特市| 诏安县| 太谷县| 泌阳县| 舒城县| 兴化市| 建平县| 宜川县| 冷水江市| 卓尼县| 武山县| 九寨沟县| 呈贡县| 赤水市| 门源| 寻甸| 平乐县| 乌兰浩特市| 安仁县| 新营市| 莱州市| 南投市| 阿瓦提县| 顺昌县| 确山县| 自贡市| 黎平县| 塔城市| 嘉黎县| 金阳县| 宜阳县| 永修县| 黑山县| 大同市| 新龙县| 武平县| 个旧市| 浦东新区| 庄浪县|