《第九講 普通索引和唯一索引選擇》 讀書筆記

查詢

唯一索引:因爲做了唯一約束,查詢到值以後會直接返回。

普通索引:匹配到第一個節點後,會繼續向後匹配。

性能來說,差不多

更新

唯一索引:需要做唯一校驗,所以會讀取索引校驗,導致不能使用changebuff。

普通索引:更新的時候先將記錄寫到changebuff,而不進行磁盤更新,這樣性能更好。

changebuff

更新操作的時候,直接將記錄寫在changebuff內存裏,而不直接寫磁盤。

1.當讀取頁數據時,會進行merge操作,既將changebuff操作更新到磁盤。

2.定時線程進行merge操作。

當使用唯一索引時,會頻繁觸發merge,這樣changebuff就失去了優勢,並且多出維護changebuff的損耗。

實際上也就普通索引能使用changebuff。

可以通過innodb_change_buffer_max_size設置佔用buff poll的比例。

對於寫多讀少的場景,推薦開啓changebuff,然後儘量設置佔比。

changebuff 使用場景

1.寫多讀少

2.普通索引

3.不適合寫完立馬讀的場景

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章