change buffer
一塊存盤了更新操作的緩沖區,它存在于 MySQL 的 buffer pool 中,
它是怎么作用的:
對于普通索引,如果更新操作的目標page頁不在記憶體中,那么會先將這些更新操作記錄在change buffer中,等到 select 操作將該目標page頁查詢到記憶體時會執行更新,這樣減少了隨機訪問磁盤的次數,
對于唯一索引,由于執行更新操作時必須先將目標page頁讀取到記憶體中判斷唯一性,因此沒有必要使用該buffer,還能減少維護成本,
適用場景:
寫多讀少的場合,多次更新操作,然后同時merge buffer中的記錄,最大限度的利用了一次磁盤訪問,
如果是普通索引,在更新完之后馬上就查詢剛插入的那條記錄,這樣并不能降低磁盤訪問,
結論:
業務允許的情況下,盡量選擇普通索引,因為二者查詢效率幾乎無差異,而更新效率在change buffer的維護下,普通>唯一索引,
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/542463.html
標籤:其他
