日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

詳解MySQL 重做日志(redo log)與回滾日志(undo logo)

瀏覽:144日期:2023-10-12 10:20:20

前言:

前面文章講述了 MySQL 系統中常見的幾種日志,其實還有事務相關日志 redo log 和 undo log 沒有介紹。相對于其他幾種日志而言, redo log 和 undo log 是更加神秘,難以觀測的。本篇文章將主要介紹這兩類事務日志的作用及運維方法。

1.重做日志(redo log)

我們都知道,事務的四大特性里面有一個是 持久性 ,具體來說就是只要事務提交成功,那么對數據庫做的修改就被永久保存下來了,不可能因為任何原因再回到原來的狀態。那么 MySQL 是如何保證一致性的呢?最簡單的做法是在每次事務提交的時候,將該事務涉及修改的數據頁全部刷新到磁盤中。但是這么做會有嚴重的性能問題,主要體現在兩個方面:

因為 Innodb 是以頁為單位進行磁盤交互的,而一個事務很可能只修改一個數據頁里面的幾個字節,這個時候將完整的數據頁刷到磁盤的話,太浪費資源了。 一個事務可能涉及修改多個數據頁,并且這些數據頁在物理上并不連續,使用隨機 IO 寫入性能太差。

因此 MySQL 設計了 redo log ,具體來說就是只記錄事務對數據頁做了哪些修改,這樣就能完美地解決性能問題了(相對而言文件更小并且是順序IO)。

redo log 包括兩部分:一個是內存中的日志緩沖(redo log buffer),另一個是磁盤上的日志文件(redo log file)。MySQL 每執行一條 DML 語句,先將記錄寫入 redo log buffer ,后續某個時間點再一次性將多個操作記錄寫到 redo log file 。

默認情況下,redo log 在磁盤上由名為 ib_logfile0 和 ib_logfile1 的兩個物理文件展示。redo log 相關參數簡單介紹如下:

innodb_log_files_in_group:redo log 文件的個數,命名方式如:ib_logfile0,iblogfile1... iblogfilen。默認2個,最大100個。 innodb_log_file_size:單個 redo log 文件設置大小,默認值為 48M,最大值為512G,注意最大值指的是整個 redo log 系列文件之和,即(innodb_log_files_in_group * innodb_log_file_size )不能大于最大值512G。 innodb_log_group_home_dir:指定 redo log 文件組所在的路徑,默認./ ,表示在數據庫的數據目錄下。 innodb_log_buffer_size:redo log buffer 大小,默認16M。延遲事務日志寫入磁盤,把 redo log 放到該緩沖區,然后根據 innodb_flush_log_at_trx_commit 參數的設置,再把日志從 buffer 中 flush 到磁盤中。 innodb_flush_log_at_trx_commit:控制 redo log 刷新到磁盤的策略,默認為1。值為1,每次 commit 都會把 redo log 從 redo log buffer 寫入到 system ,并 fsync 刷新到磁盤文件中。值為2,每次事務提交時 MySQL 會把日志從 redo log buffer 寫入到 system ,但只寫入到 file system buffer,由系統內部來 fsync 到磁盤文件。如果數據庫實例 crash ,不會丟失 redo log,但是如果服務器 crash,由于 file system buffer 還來不及 fsync 到磁盤文件,所以會丟失這一部分的數據。值為0,表示事務提交時不進行寫入 redo log 操作,這個操作僅在 master thread 中完成,而在 master thread 中每1秒進行一次重做日志的 fsync 操作,因此實例 crash 最多丟失1秒鐘內的事務。

更改 redo log 及其 buffer 大小是需要重啟數據庫實例的,建議初始化時做好評估。可以適當加大 redo log 組數和大小,特別是你的數據庫實例更新比較頻繁的情況下。但也不推薦 redo log 設置過大。

2.回滾日志(undo log)

undo log 主要用于保證數據的原子性,保存了事務發生之前的數據的一個版本,可以用于回滾。比如一條 INSERT 語句,對應一條 DELETE 的 undo log ,對于每個 UPDATE 語句,對應一條相反的 UPDATE 的 undo log ,這樣在發生錯誤時,就能回滾到事務之前的數據狀態。同時,undo log 也是 MVCC (多版本并發控制) 實現的關鍵。

MySQL 5.7 版本中,undo log 默認存放在共享表空間 ibdata 中。也可以在初始化時通過配置參數改成獨立的文件,簡單介紹幾個 undo log 相關參數:

innodb_max_undo_log_size:控制最大 undo tablespace 文件的大小,當啟動了innodb_undo_log_truncate 時,undo tablespace 超過 innodb_max_undo_log_size 閥值時才會去嘗試truncate。該值默認大小為1G,truncate后的大小默認為10M。 innodb_undo_tablespaces:設置 undo 獨立表空間個數,范圍為0-128,5.7版本默認為0,0表示不開啟獨立undo表空間。該參數只能在最開始初始化 MySQL 實例的時候指定。 innodb_undo_directory:設置 undo 表空間的存放目錄,默認數據目錄。 innodb_undo_log_truncate:設置 undo 表空間是否自動截斷回收。該參數生效的前提是,已設置獨立表空間且獨立表空間個數大于等于2個。

undo log 相關參數一般很少改動。MySQL 8.0 默認啟用了獨立表空間,可能 undo log 表空間的大小設置更靈活些。

總結:

本篇文章主要介紹了 redo log 及 undo log 的作用和相關參數設置,文章寫的比較匆忙,如有錯誤,可以留言指出。關于這兩類日志更深層次的內容,可能筆者功力還不到,未能寫到更加透徹。好了,MySQL 相關日志的兩篇文章已經寫完了,希望各位能學到一點知識。

標簽: MySQL 數據庫
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩av有码| 欧美日韩中文一区二区| 欧美日韩a区| 久久久久网站| 国产色播av在线| 欧美日韩午夜| 伊人久久亚洲热| 久久精品欧洲| 日韩午夜视频在线| 欧美午夜不卡| 日韩中文在线播放| 亚洲专区视频| 好看不卡的中文字幕| 精品国产美女a久久9999| 丝瓜av网站精品一区二区| 91日韩免费| 国产精品sm| 亚洲欧美日韩高清在线| 亚洲精品**中文毛片| 麻豆精品少妇| 国产无遮挡裸体免费久久| 蜜臀精品久久久久久蜜臀| 欧美不卡高清一区二区三区| 里番精品3d一二三区| 一区二区国产在线| 亚洲在线一区| 在线手机中文字幕| 国产不卡一区| 国产精一区二区| 国产精品大片免费观看| 欧美日韩一区二区国产 | 91九色综合| 亚洲三级av| 日本在线不卡视频| 亚洲综合五月| 日韩二区三区在线观看| 日韩精品社区| 国产伦理一区| 97在线精品| 欧美精品激情| 亚洲福利一区| 亚洲精品伊人| 国产精品a久久久久| 国产成人精品一区二区三区在线| 精品亚洲免a| 婷婷成人av| 久久中文视频| 久久中文字幕av| 麻豆中文一区二区| 精品日本视频| 欧美.日韩.国产.一区.二区 | 一区二区三区网站| 鲁大师成人一区二区三区| 久色成人在线| 久久精品72免费观看| 麻豆精品新av中文字幕| 99久久精品费精品国产| 蜜桃av一区二区三区电影| 国产精品欧美三级在线观看 | 蜜臀久久久99精品久久久久久| 日本少妇精品亚洲第一区| 日韩av免费大片| 亚洲精品在线二区| 精品国产中文字幕第一页| 精品国产精品国产偷麻豆| 色网在线免费观看| 日韩欧乱色一区二区三区在线| 久久久久久夜| 欧美日韩a区| 9国产精品视频| 国产一区二区三区亚洲| 中文不卡在线| 亚洲五月婷婷| 国产suv精品一区| 日本午夜免费一区二区| 午夜日韩福利| 久久久久.com| 国产精品久久久久久久免费观看| 99视频精品| 欧美三级网址| 欧美亚洲国产日韩| 午夜精品福利影院| 天堂成人免费av电影一区| 国产美女高潮在线| 日韩av在线播放网址| 亚洲久久一区| 国产精品毛片在线| 国产99精品一区| 999国产精品999久久久久久| 精品国产a一区二区三区v免费| 日韩国产欧美视频| 日本午夜精品久久久| 亚洲精品伦理| 日韩一区二区三区免费视频| 石原莉奈在线亚洲三区| 久久精品国内一区二区三区水蜜桃| 国产成年精品| 成人av三级| 欧美日韩国产免费观看视频| 999久久久免费精品国产| 久久久一二三| 91精品91| 亚洲人成亚洲精品| 日韩手机在线| 国产精品毛片久久久| 精品视频一区二区三区四区五区 | 69堂免费精品视频在线播放| 亚洲精品少妇| 国产精品网址| 日韩中文字幕91| 久久久久蜜桃| 精品无人区麻豆乱码久久久| 亚洲日产av中文字幕| 亚洲成人日韩| 色综合www| 国产精品宾馆| 欧美日韩xxxx| 中文字幕免费一区二区| 国产精品精品| 国产一区二区亚洲| 国产白浆在线免费观看| 国际精品欧美精品| 国产精品一区二区精品视频观看 | 日韩电影免费网址| 国产精品久久久久久久免费观看| 国产免费av国片精品草莓男男| 亚洲三级观看| 亚洲a级精品| 久久国产人妖系列| 精品久久国产一区| 91精品一区国产高清在线gif | 蜜桃视频一区二区| 亚洲精品在线二区| 中文久久精品| 国产精品普通话对白| 亚洲综合激情在线| 国产精品99精品一区二区三区∴ | 亚洲精品高潮| 黄色在线网站噜噜噜| 欧美精品一线| 日韩中文av| 成人日韩av| 亚洲一区日韩在线| 国产欧美大片| 狠狠爱成人网| 色综合视频一区二区三区日韩| 男人的天堂久久精品| 91精品1区| 日本vs亚洲vs韩国一区三区二区| 日韩高清在线不卡| 免费精品一区| 日韩av首页| 麻豆91小视频| 日韩亚洲在线| 荡女精品导航| 精品视频一区二区三区在线观看| 日韩午夜av在线| 国产专区精品| 中文字幕av一区二区三区四区| 日本欧美国产| 国产精品欧美日韩一区| 免费久久99精品国产自在现线| 久久99国产精品视频| 日本精品在线播放| 天堂成人国产精品一区| 另类综合日韩欧美亚洲| 福利片在线一区二区| 国产欧美啪啪| 综合激情一区| 国产精品88久久久久久| 久久精品国产久精国产| 欧美日韩 国产精品| 亚洲综合电影一区二区三区| 日韩欧美午夜| 国产麻豆久久| 欧洲一区二区三区精品| 久久精品网址| 久久av网站| 久久99视频| 麻豆国产精品视频| 欧美久久亚洲| 精品一区欧美| 亚洲www啪成人一区二区| 国内不卡的一区二区三区中文字幕| 国产日韩在线观看视频| 激情91久久| 美女精品在线观看| 亚洲精品美女91| 日本精品在线播放| 国产精品一区二区免费福利视频| 亚洲欧洲免费| 日韩影院在线观看| 日韩精品久久久久久| 国产欧美三级| 色偷偷色偷偷色偷偷在线视频| 色乱码一区二区三区网站| 国产精品一国产精品k频道56| 日本黄色精品| 在线精品视频在线观看高清| 亚洲一区二区三区免费在线观看 |