日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql+清理undo_undo清理 redo 持久化

發(fā)布時間:2024/3/24 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql+清理undo_undo清理 redo 持久化 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

為了進行mvcc(多版本并發(fā)控制)與回滾,innodb單獨管理著undo空間(undo space、rollback segment)。

1)當執(zhí)行update語句后,即使不執(zhí)行commit,數(shù)據(jù)列也會在innodb緩沖池修改。但是innodb存儲引擎無法確定用戶執(zhí)行update語句后,執(zhí)行rollback操作還是commit操作。

因此為了應對用戶可能rollback操作的情形,先要將修改之前的數(shù)據(jù)保存到undo日志。

2)當用戶進行commit,緩沖池中變更的內(nèi)容就會持久化。

3)當用戶進行rollback,就會將保存在undo日志的舊數(shù)據(jù)還原。

innodb不會將緩沖池中的內(nèi)容立即刷到數(shù)據(jù)文件,而是按照一定周期寫入。所以,執(zhí)行完(1)時,數(shù)據(jù)文件列值可能為新值,也可能為舊值。(若innodb的后臺線程已經(jīng)將記錄寫入數(shù)據(jù)文件,那么原值就會被更新為新值)

大量客戶連接中的數(shù)據(jù)發(fā)生變化時,undo日志會積累許多變更前的信息,這些積累的信息必須在某時刻進行刪除,留出足夠空間來保存以后的變更內(nèi)容,這個動作就是undo清理(undo purge)。mysql5.7的innodb,允許用戶將innodb_purge_threads系統(tǒng)變量設置為大于1的值,這樣就可以多個undo清理線程做清理工作。

redo持久化:

當執(zhí)行DML語句時,變更的數(shù)據(jù)會先記錄到重做(redo)日志,同時持久化到磁盤。

innodb存儲引擎只在內(nèi)存(innodb緩沖池)中更改實際數(shù)據(jù)表的數(shù)據(jù),innodb會在某個時刻將僅在內(nèi)存(innodb緩沖池)中更改的數(shù)據(jù)持久化到磁盤。

總結(jié)

以上是生活随笔為你收集整理的mysql+清理undo_undo清理 redo 持久化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。