最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mysql日志系統(tǒng)redo log和bin log介紹

 更新時間:2022年08月25日 09:14:56   作者:會玩code  
這篇文章主要介紹了mysql日志系統(tǒng)redo log和bin log介紹,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下

首先,我們先來看看一次查詢/更新語句流程圖

本文會將重點放在執(zhí)行器<->存儲引擎之間的交互。

mysql不是每次數(shù)據(jù)更改都立刻寫到磁盤,而是會先將修改后的結(jié)果暫存在內(nèi)存中,當(dāng)一段時間后,再一次性將多個修改寫到磁盤上,減少磁盤io成本,同時提高操作速度。

mysql通過WAL(write-ahead logging)技術(shù)保證事務(wù):

在同一個事務(wù)中,每當(dāng)數(shù)據(jù)庫進行修改數(shù)據(jù)操作時,將修改結(jié)果更新到內(nèi)存后,會在redo log添加一行記錄記錄“需要在哪個數(shù)據(jù)頁上做什么修改”,并將該記錄狀態(tài)置為prepare,等到commit提交事務(wù)后,會將此次事務(wù)中在redo log添加的記錄的狀態(tài)都置為commit狀態(tài),之后將修改落盤時,會將redo log中狀態(tài)為commit的記錄的修改都寫入磁盤。

過程如下圖:

redo log記錄方式:

redolog的大小是固定的,在mysql中可以通過修改配置參數(shù)innodb_log_files_in_group和innodb_log_file_size配置日志文件數(shù)量和每個日志文件大小,redolog采用循環(huán)寫的方式記錄,當(dāng)寫到結(jié)尾時,會回到開頭循環(huán)寫日志。

如下redolog記錄方式圖:

write pos表示日志當(dāng)前記錄的位置,當(dāng)ib_logfile_4寫滿后,會從ib_logfile_1從頭開始記錄;check point表示將日志記錄的修改寫進磁盤,完成數(shù)據(jù)落盤,數(shù)據(jù)落盤后checkpoint會將日志上的相關(guān)記錄擦除掉,即write pos->checkpoint之間的部分是redo log空著的部分,用于記錄新的記錄,checkpoint->write pos之間是redo log待落盤的數(shù)據(jù)修改記錄。當(dāng)writepos追上checkpoint時,得先停下記錄,先推動checkpoint向前移動,空出位置記錄新的日志。
有了redo log,當(dāng)數(shù)據(jù)庫發(fā)生宕機重啟后,可通過redo log將未落盤的數(shù)據(jù)恢復(fù),即保證已經(jīng)提交的事務(wù)記錄不會丟失。有了redo log,為啥還需要binlog呢?

  • 1、redo log的大小是固定的,日志上的記錄修改落盤后,日志會被覆蓋掉,無法用于數(shù)據(jù)回滾/數(shù)據(jù)恢復(fù)等操作。
  • 2、redo log是innodb引擎層實現(xiàn)的,并不是所有引擎都有。

基于以上,binlog必不可少

  • 1、binlog是server層實現(xiàn)的,意味著所有引擎都可以使用binlog日志
  • 2、binlog通過追加的方式寫入的,可通過配置參數(shù)max_binlog_size設(shè)置每個binlog文件的大小,當(dāng)文件大小大于給定值后,日志會發(fā)生滾動,之后的日志記錄到新的文件上。
  • 3、binlog有兩種記錄模式,statement格式的話是記sql語句, row格式會記錄行的內(nèi)容,記兩條,更新前和更新后都有。

binlog和redo log必須保持一致,不允許出現(xiàn)binlog有記錄但redolog沒有的情況,反之亦然。之前說過在一個事務(wù)中,redolog有prepare和commit兩種狀態(tài),所以,在redolog狀態(tài)為prepare時記錄binlog可保證兩日志的記錄一致,下圖列出各種情況來說明。

現(xiàn)在我們再來看看整個完整的流程圖:

相關(guān)參數(shù)設(shè)置建議:

  • 1、innodb_flush_log_at_trx_commit:設(shè)置為1,表示每次事務(wù)的redolog都直接持久化到磁盤(注意是這里指的是redolog日志本身落盤),保證mysql重啟后數(shù)據(jù)不丟失。
  • 2、sync_binlog: 設(shè)置為1,表示每次事務(wù)的binlog都直接持久化到磁盤(注意是這里指的是binlog日志本身落盤),保證mysql重啟后binlog記錄是完整的。

到此這篇關(guān)于mysql日志系統(tǒng)redo log和bin log介紹的文章就介紹到這了,更多相關(guān)mysql日志系統(tǒng) 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL查看表和清空表的常用命令總結(jié)

    MySQL查看表和清空表的常用命令總結(jié)

    這篇文章主要介紹了MySQL查看表和清空表的常用命令總結(jié),是MySQL入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-11-11
  • MySQL Binlog 日志處理工具對比分析

    MySQL Binlog 日志處理工具對比分析

    這篇文章主要介紹了MySQL Binlog 日志處理工具對比分析的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下
    2021-03-03
  • 在一臺服務(wù)器上安裝兩個或多個mysql的實現(xiàn)步驟

    在一臺服務(wù)器上安裝兩個或多個mysql的實現(xiàn)步驟

    這篇文章給大家介紹如何在一臺服務(wù)器上安裝兩個或多個mysql的實現(xiàn)步驟,有需要的朋友們可以參考學(xué)習(xí),下面跟著小編一起來看看吧。
    2016-09-09
  • 詳解MySQL中的存取權(quán)限

    詳解MySQL中的存取權(quán)限

    這篇文章主要介紹了詳解MySQL中的存取權(quán)限,針對用戶使用數(shù)據(jù)庫權(quán)限分配的問題做出說明,需要的朋友可以參考下
    2015-07-07
  • MySQL外鍵約束的禁用與啟用命令

    MySQL外鍵約束的禁用與啟用命令

    下面小編就為大家?guī)硪黄狹ySQL外鍵約束的禁用與啟用命令。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • Mysql數(shù)據(jù)庫的導(dǎo)入導(dǎo)出方式(各種情況)

    Mysql數(shù)據(jù)庫的導(dǎo)入導(dǎo)出方式(各種情況)

    這篇文章主要介紹了Mysql數(shù)據(jù)庫的導(dǎo)入導(dǎo)出方式(各種情況),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • MySQL中的嵌套查詢

    MySQL中的嵌套查詢

    這篇文章主要介紹了MySQL中的嵌套查詢方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • MySQL 外鍵(FOREIGN KEY)用法案例詳解

    MySQL 外鍵(FOREIGN KEY)用法案例詳解

    這篇文章主要介紹了MySQL 外鍵(FOREIGN KEY)用法案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • 解決Mysql建表時報錯invalid?ON?UPDATE?clause?for?'create_date'?column

    解決Mysql建表時報錯invalid?ON?UPDATE?clause?for?'create_d

    這篇文章主要介紹了解決Mysql建表時報錯invalid?ON?UPDATE?clause?for?'create_date'?column問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • mysql like 特殊字符搜索的實現(xiàn)

    mysql like 特殊字符搜索的實現(xiàn)

    在MySQL中,LIKE操作符用于在查詢數(shù)據(jù)時進行模糊匹配,本文主要介紹了mysql like 特殊字符搜索的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2023-09-09

最新評論

田东县| 璧山县| 大竹县| 上杭县| 安吉县| 佛山市| 潞西市| 侯马市| 蒲江县| 托克逊县| 大丰市| 仪征市| 长沙市| 昂仁县| 大化| 金堂县| 广德县| 休宁县| 舒兰市| 奉贤区| 石泉县| 苍山县| 孙吴县| 阿荣旗| 麦盖提县| 中宁县| 长宁区| 遵义县| 武城县| 昔阳县| 澄城县| 惠来县| 靖宇县| 青海省| 梁平县| 隆子县| 当涂县| 太康县| 容城县| 汝州市| 郁南县|