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

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

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

瀏覽:149日期: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久久,三上悠亚国产精品一区二区三区
久久wwww| 午夜亚洲精品| 日韩在线观看一区二区三区| 欧美粗暴jizz性欧美20| 精品日韩视频| 欧美日韩精品免费观看视欧美高清免费大片 | 亚洲精品乱码久久久久久蜜桃麻豆| 亚洲经典在线| 首页国产欧美久久| 亚洲精品裸体| 欧美精品三级在线| 国产激情欧美| 精品国产不卡一区二区| 9999国产精品| 欧美激情另类| 欧美久久一区二区三区| 国产精品久久久久久久久久妞妞 | 综合亚洲自拍| 日韩影片在线观看| 国产精品视频一区二区三区四蜜臂| 免费一级欧美在线观看视频| 成人污污视频| 久久天堂成人| 中文字幕av亚洲精品一部二部| 日本午夜精品| 欧美精品aa| 激情国产在线| 国产精品99免费看| 免费成人av在线播放| 日韩高清在线不卡| 成人在线视频中文字幕| 五月天激情综合网| 日韩激情综合| 欧美韩日一区| 亚洲视频电影在线| 久久久国产精品网站| 久久久久久久久丰满| 蜜桃传媒麻豆第一区在线观看| 国产探花在线精品一区二区| 国产欧美一区二区三区精品酒店| 中文字幕系列一区| 免费在线看一区| 久久成人高清| 亚洲精品中文字幕乱码| 日韩三级久久| а√天堂8资源中文在线| 99香蕉国产精品偷在线观看| 欧美一级一区| 四虎884aa成人精品最新| 午夜久久av| 色综合狠狠操| 日韩一区精品字幕| 久久av影院| 黑丝美女一区二区| 国产伦精品一区二区三区千人斩| 日韩高清成人| 日韩高清欧美激情| 一区二区三区四区在线看| 91精品国产自产在线丝袜啪| 免费高潮视频95在线观看网站| 综合亚洲自拍| 久久久久.com| 日韩精彩视频在线观看| 国产一区清纯| 国产精品a久久久久| 伊人久久婷婷| 在线看片日韩| 久久激情网站| 国产精品网址| 天堂成人国产精品一区| 国产成人久久| 日韩中文字幕麻豆| 日产精品一区二区| 日本视频在线一区| 91久久中文| 日韩一区二区中文| 国产精品99精品一区二区三区∴| 水蜜桃久久夜色精品一区的特点| 欧洲av不卡| 久久爱www.| 香蕉久久一区| 中文日韩欧美| 日韩黄色大片| 精品国产亚洲一区二区三区在线| 亚洲午夜免费| 亚洲高清不卡| 精品网站aaa| 欧美日一区二区在线观看| 香蕉久久久久久久av网站| 日韩毛片视频| 精品视频网站| 嫩呦国产一区二区三区av| 日韩和欧美一区二区三区| 丝袜a∨在线一区二区三区不卡 | 91精品1区| 久久影院午夜精品| 国产精品最新自拍| 综合色就爱涩涩涩综合婷婷| 中文亚洲欧美| 久久伦理在线| 欧洲一级精品| 91欧美日韩| 国产精品宾馆| 国产欧美一区二区三区精品观看 | 国产综合视频| 日本精品不卡| xxxxx性欧美特大| 久久久久九九精品影院| 日本成人在线一区| 日韩一区二区三区精品视频第3页 日韩一区二区三区免费视频 | 999国产精品| 日韩一区三区| 91中文字幕精品永久在线| 精品国产一区二区三区av片| 国产毛片精品| 国产精品夜夜夜| 久久狠狠亚洲综合| 日韩精品国产精品| 日韩视频1区| 日韩高清不卡一区| 91精品国产自产观看在线| 91福利精品在线观看| 亚洲人成网站在线在线观看| 亚洲欧美日韩国产综合精品二区| 久久精品国产99国产精品| 国产精品第一国产精品| 国产精品蜜月aⅴ在线| 欧美精品1区| 国产成人免费| 成人午夜精品| 亚洲福利一区| 亚洲视频www| 亚洲资源网站| 国产精品蜜月aⅴ在线| 动漫av一区| 香蕉成人av| 日韩网站在线| 亚洲自啪免费| 婷婷精品在线| 国产欧美日韩视频在线| 国产精品久久久亚洲一区| 精品欧美视频| 91tv亚洲精品香蕉国产一区| 91久久久精品国产| 先锋亚洲精品| 久久国产人妖系列| 麻豆国产91在线播放| 免费一二一二在线视频| 午夜av一区| 日韩三级精品| 国产一区二区三区不卡av| 免费国产亚洲视频| 日本成人在线一区| 麻豆国产一区| 日韩欧美视频专区| 六月婷婷一区| 国产日产精品一区二区三区四区的观看方式| 国产精品一区二区中文字幕| 国产精品成人一区二区不卡| 亚洲一级黄色| 综合亚洲自拍| 精品伊人久久久| 亚洲网站视频| 日本成人精品| 欧美日韩精品免费观看视完整| 丝袜亚洲另类欧美| 国产精品一区二区三区www| 六月丁香综合在线视频| 久久精品123| 亚洲男人在线| 岛国av免费在线观看| 国产一区91| 国产精品亚洲欧美| 久久国产小视频| 日本综合精品一区| 日韩啪啪电影网| 日韩一区精品| 免费福利视频一区二区三区| 亚洲免费成人av在线| 精品视频国内| 丝袜诱惑制服诱惑色一区在线观看| 国产精品三p一区二区| 久久美女性网| 三级一区在线视频先锋| 国产一区二区三区久久| 免费成人在线视频观看| 国产中文字幕一区二区三区| 视频一区在线视频| 国产成人精选| 综合激情视频| 新版的欧美在线视频| 日本不卡视频一二三区| 日本欧美不卡| 欧美精品国产一区| 伊人久久大香线蕉av不卡| 国产精品探花在线观看| 在线一区欧美| 97精品国产一区二区三区| 亚洲在线观看| 精品国产第一福利网站|