Binlog、Redo log、Undo log的區別

一、binlog和redo log的區別

特性binlogredo log
記錄對象記錄的是 MySQL 服務器的事務操作,針對的是整個數據庫實例。記錄的是 InnoDB 存儲引擎的數據頁變化,針對的是具體的存儲引擎層面。
記錄內容記錄的是事務的邏輯操作,例如 SQL 語句(語句型 binlog)或行變化(行型 binlog)。記錄的是數據頁的物理變化,例如某個頁的某個偏移量的修改。
記錄時間在事務提交后寫入(即事務提交完成后才寫入 binlog)。在事務執行過程中寫入(即事務提交前會寫入 redo log)。
記錄方式寫到一定大小會切換下一個,不會覆蓋之前的日志。依次往幾個Redo log文件中寫入,如果最后一個文件寫滿了,又會回到第一個Redo log中寫入。
用途備份,復制保證事務的持久性

?二、Redo log和undo log的區別

對比方向undo logredo log
記錄內容方向的數據修改記錄正向的數據頁變更記錄
寫入順序隨機讀寫順序寫
作用幫助事務回滾以及實現MVCC用保證事務的持久性

三、更新數據時,各種日志的寫入時機

舉例:DELETE FROM t1 WHERE id=1

階段undo logredo logbinlog
事務開始開始記錄事務的舊值,但尚未寫入。未寫入。未寫入。
事務執行階段寫入 undo log,記錄?id=1?行的舊值。未寫入。未寫入。
事務提交判斷undo log 已寫入,記錄舊值。未寫入。未寫入。
事務提交undo log 已寫入,記錄舊值。寫入 redo log,記錄?id=1?行被刪除后的物理變化。未寫入(binlog 在事務提交后寫入)。
事務提交后undo log 已寫入,記錄舊值。redo log 已寫入,記錄物理變化。寫入 binlog,記錄?DELETE FROM t1 WHERE id=1?的邏輯操作
事務結束(成功)undo log 已寫入,記錄舊值。redo log 已寫入,記錄物理變化。binlog 已寫入,記錄邏輯操作。
事務回滾(失敗)使用 undo log 回滾,恢復?id=1?行的舊值。未寫入(redo log 只在事務成功提交時寫入)。未寫入(binlog 只在事務成功提交后寫入)。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/899468.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/899468.shtml
英文地址,請注明出處:http://en.pswp.cn/news/899468.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

TDengine 中的異常恢復

簡介 本章主要介紹在 TDengine 執行命令過程中發生異常,如何手工終于執行的任務。可以終止連接,線上查詢及終止事務。 如果一個事務 在一個復雜的應用場景中,連接和查詢任務等有可能進入一種錯誤狀態或者耗時過長遲遲無法結束,…

全球化2.0 | ZStack舉辦香港Partner Day,推動AIOS智塔+DeepSeek海外實踐

2025年3月21日,云軸科技ZStack在香港成功舉辦了主題為“ZStack AIOS 智塔與 DeepSeek 私有化方案介紹及企業應用落地實踐”的 Partner Day 活動。此次活動吸引了眾多海外合作伙伴,共同探討 AI Infra 平臺在企業私有化 AI 中的應用與價值閉環。 ZStack CT…

ERP、MES和CRM三大企業系統的詳細介紹及對比分析

以下是關于ERP、MES和CRM三大企業系統的詳細介紹及對比分析: 1. ERP(企業資源計劃,Enterprise Resource Planning) 核心功能: 集成管理:財務、采購、庫存、生產、人力資源等核心業務流程資源優化&#xf…

(二十)Dart 中的多態

Dart 中的多態教程 一、多態的概念 多態是面向對象編程中的一個重要概念。它允許將子類類型的指針賦值給父類類型的指針,同一個函數調用會有不同的執行效果。換句話說,子類的實例可以賦值給父類的引用。多態的核心在于父類定義一個方法不去實現&#x…

【C++初階】第12課—list

文章目錄 1. list的構造2. list迭代器的常見接口2.1 list遍歷的迭代器接口2.2 list修改數據的迭代器接口2.3 list排序、逆序、合并相關操作的成員函數 3. 模擬實現list3.1 模擬實現list的構造3.2 模擬實現list的尾插3.3 模擬實現迭代器iterator3.4 模擬實現list的插入刪除3.5 模…

思維鏈技術(Chain-of-Thought, CoT)

思維鏈(Chain-of-Thought, CoT)是一種通過模擬人類逐步推理過程來提升大型語言模型(LLM)復雜任務表現的技術。其核心思想是讓模型在生成最終答案前,先輸出中間推理步驟,從而增強邏輯性和可解釋性。 1. 基礎…

谷粒微服務高級篇學習筆記整理---異步線程池

多線程回顧 多線程實現的4種方式 1. 繼承 Thread 類 通過繼承 Thread 類并重寫 run() 方法實現多線程。 public class MyThread extends Thread {Overridepublic void run() {System.out.println("線程運行: " Thread.currentThread().getName());} }// 使用 pub…

Windows學習筆記(4)關于MITRE

基本術語 APT(威脅組,高級持續威脅) TTP(攻擊目的技術過程,戰術技術和程序) ATT&CK框架 網站 https://attack.mitre.org/ CAR知識庫 MITRE Engage MITRE D3FEND 網址 https://d3fend.mitre.org/

Go 語言規范學習(2)

文章目錄 VariablesTypesBoolean typesNumeric typesString typesArray typesSlice typesStruct typesPointer typesFunction typesInterface typesBasic interfacesEmbedded interfacesGeneral interfaces【泛型接口】Implementing an interface【實現一個接口】 Map typesCha…

創意 Python 愛心代碼分享

創意 Python 愛心代碼分享 在編程中,用代碼表達創意和情感是一種非常有趣的方式。本文將分享幾段用 Python 編寫的愛心代碼,涵蓋簡單到復雜的實現方式,適合初學者和進階開發者。 1. 簡單愛心圖案 代碼實現 print("\n".join([&qu…

NLP高頻面試題(二十四)——RAG相關內容簡介

檢索增強生成(Retrieval-Augmented Generation,簡稱 RAG)是一種將信息檢索與生成模型相結合的技術,旨在提升大型語言模型的響應準確性、相關性和時效性。通過在生成過程中引入外部知識,RAG 能夠有效彌補 LLM 在知識局限…

Share01-WinCC文件越用越大?

為什么你們的經典WinCC項目在客戶電腦上運行的越來越慢?為什么查詢一個歷史曲線慢的要死?為什么重啟一下電腦畫面都要懷疑人生?具體原因可能多種多樣,但是極大可能是您的數據管理設置欠佳,那么閑話少敘,和小…

練習題:111

目錄 Python題目 題目 題目分析 需求理解 關鍵知識點 實現思路分析 代碼實現 代碼解釋 指定文件路徑和名稱: 定義要寫入的內容: 打開文件并寫入內容: 異常處理: 輸出提示信息: 運行思路 結束語 Python題…

2025_0327_生活記錄

昨晚正在玩手機,凌晨一點二十一分左右手機突然響起來,通知地震波將在5秒后到達海淀區。看著倒計時的數字不斷減小,橙色預警頁面不斷閃動,床猛地搖了幾下。那一刻,我的記憶被拉回了2008年。 上大學之前我在成都生活了1…

基于改進粒子群算法的多目標分布式電源選址定容規劃(附帶Matlab代碼)

通過分析分布式電源對配電網的影響,以有功功率損耗、電壓質量及分布式電源總容量為優化目標,基于模糊理論建立了分布式電源在配電網中選址定容的多目標優化模型,并提出了一種改進粒子群算法進行求解。在算例仿真中,基于IEEE-14標準…

雨云云應用測評!內測持續進行中!

大家好,時隔一個月,我們又見面了! 最近,雨云推出了新型云應用(RCA,Rainyun Cloud Application)。 通過云應用,你可以快速創建可以外部訪問的應用,采用全新的面板和dock…

【研究方向】聯邦|自然語言

聯邦學習 Federated Learning,FL 分布式學習方案。 通過多個參與方(client) 聯邦計算 Federated Computing 聯邦計算(Federated Learning)是一種分布式 機器學習 方法,旨在解決數據隱私保護與數據孤島問題。 圖聯邦 Graph Neural Networks,GNNs 圖聯…

【算法day25】 最長有效括號——給你一個只包含 ‘(‘ 和 ‘)‘ 的字符串,找出最長有效(格式正確且連續)括號子串的長度。

32. 最長有效括號 給你一個只包含 ‘(’ 和 ‘)’ 的字符串,找出最長有效(格式正確且連續)括號子串的長度。 https://leetcode.cn/problems/longest-valid-parentheses/ 2.方法二:棧 class Solution { public:int longestValid…

C++編程學習筆記:函數相關特性、引用與編譯流程

目錄 一、函數的缺省參數 (一)全缺省參數 (二)半缺省參數 二、函數重載 (一)參數類型不同 (二)參數個數不同 (三)參數類型順序不同 三、引用相關問題…

RPCGC閱讀

24年的MM 創新 現有點云壓縮工作主要集中在保真度優化上。 而在實際應用中,壓縮的目的是促進機器分析。例如,在自動駕駛中,有損壓縮會顯著丟失戶外場景的詳細信息。在三維重建中,壓縮過程也會導致場景數據中語義信息(Contour)的…