您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“mysql中undo log的兩種類型是什么”,內容詳細,步驟清晰,細節處理妥當,希望這篇“mysql中undo log的兩種類型是什么”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
根據行為的不同,undo log分為兩種:insert undo log和update undo log
1、insert undo log,是在insert操作中產生的。insert操作的記錄只對事務本身可見。
對于其它事務此記錄是不可見的,所以 insert undo log 可以在事務提交后直接刪除而不需要進行purge操作。
2、update undo log是update或delete操作中產生。
因為會對已經存在的記錄產生影響,為了提供 MVCC機制,因此 update undo log 不能在事務提交時就進行刪除,而是將事務提交時放到入 history list 上,等待 purge 線程進行最后的刪除操作
為了更好的支持并發,InnoDB的多版本一致性讀是采用了基于回滾段的的方式。另外,對于更新和刪除操作,InnoDB并不是真正的刪除原來的記錄,而是設置記錄的delete mark為1。因此為了解決數據Page和Undo Log膨脹的問題,需要引入purge機制進行回收
為了保證事務并發操作時,在寫各自的undo log時不產生沖突,InnoDB采用回滾段的方式來維護undo log的并發寫入和持久化。回滾段實際上是一種 Undo 文件組織方式
讀到這里,這篇“mysql中undo log的兩種類型是什么”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。