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