【MySQL | 第一篇】undo log、redo log、bin log三者之间的区分?

undo log、redo log、bin log三者之间的区分?

产生的时间点、日志内容、用途 三方面展开论述即可

1.undo log——撤销日志

  • 时间点:事务开始之前产生,根据当前版本的数据生成一个undo log,也保存在事务开始之前

  • 作用:在InnoDB存储引擎中,用于保存旧的数据版本,以便在事务回滚时使用。

  • 内容:旧版本的数据

  • 用途:

    • 数据的回滚(撤销)
    • 保证MVCC
    • 支持事务的ACID特性,确保 数据原子性和一致性

2.redo log——重做日志

  • 时间点:事务开始之后产生,在事务的执行过程中写入日志数据

  • 作用:在InnoDB存储引擎中用于确 保事务的持久性

  • 内容:物理日志,对数据所做的修改

  • 用途:在系统崩溃时,用于同步数据。

  • 处理过程

    • 分为两部分,重做日志缓存(redo log buffer,存在于内存);重做日志文件(redo log file,存在于磁盘)
    • 当事务提交之后,将所有修改信息存储到日志文件中,而不是磁盘中,即WAL(Write-Ahead-Logging)预写日志系统
    • 好处:
      • 保证事务的持久性
      • 只记录对数据的修改,数据比一页数据小很多,大大减少IO频率
      • redo log写入是顺序写入,而修改磁盘是随机写入

3.bin log——二进制日志

  • 作用:记录所有修改数据的SOL语句,用于数据复制和数据恢复。
  • 内容:插入、更新、删除等修改数据或数据结构的操作。
  • 用途:
    • 复制:在主从复制中,从服务器会读取主服务器的二进制日志文件,以保持与主服务器的数据同步。
    • 数据恢复:可以使用二进制日志进行点时间恢复。

4.Error log——错误日志

  • 作用:记录mysqld启动、运行或停止时出现的问题。
  • 内容:包括启动、运行或关闭mysql时的问题、以及服务或服务器出错的信息。
  • 用途:诊断问题,确定哪些客户端尝试连接,以及是否出现了表的损坏等。

5.General Query log——查询日志

  • 作用:记录所有到MVSOL服务器的连接和查询。
  • 内容:客户端连接及每个连接发送给服务器的所有SOL查询。
  • 用途:分析和查找可能存在的问题。但在生产环境中,常常因为性能原因而不启用。

6.Slow Query log慢查询日志

  • 作用:记录查询执行时间超过long query time值的所有SOL查询
  • 内容:响应时间超出预设阈值的SOL查询。
  • 用途:帮助找到、分析并优化性能较差的查询。

7.小结

image-20240227105903185

产生时间点内容用途
undo log事务开始之前写入并保存逻辑日志,旧版本数据回滚,提供多版本并发控制下的读,保证事务的原子性和一致性
redo log事务开始之后开始,根据事务执行写入物理日志,对数据的修改mysql宕机,用于恢复数据到磁盘,保证事务的持久性
bin log事务提交的时候,一次性将事务中的所有sql记录到bin log逻辑日志,事务中所有的sql主从复制,基于时间点的数据恢复

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/266919.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

动态规划课堂3-----简单多状态问题(买卖股票最佳时机)

目录 引入: 例题1:按摩师(打家劫舍I) 例题2:打家劫舍II 例题3:删除并获得点数 例题4:粉刷房子 例题5:买卖股票的最佳时机含冷冻 结语: 引入: 相信看到…

Dockerfile(5) - CMD 指令详解

CMD 指定容器默认执行的命令 # exec 形式,推荐 CMD ["executable","param1","param2"] CMD ["可执行命令", "参数1", "参数2"...]# 作为ENTRYPOINT的默认参数 CMD ["param1","param…

DevEco Studio下载与安装(Windows)

下载地址: HUAWEI DevEco Studio和SDK下载和升级 | HarmonyOS开发者 安装时直接点击 next 即可。 运⾏已安装的DevEco Studio,⾸次使⽤,请选择Do not import settings,单击OK。 1.安装Node.js 如果本地有下载,可以…

华为---RSTP(四)---RSTP的保护功能简介和示例配置

目录 1. 技术背景 2. RSTP的保护功能 3. BPDU保护机制原理和配置命令 3.1 BPDU保护机制原理 3.2 BPDU保护机制配置命令 3.3 BPDU保护机制配置步骤 4. 根保护机制原理和配置命令 4.1 根保护机制原理 4.2 根保护机制配置命令 4.3 根保护机制配置步骤 5. 环路保护机…

PHPStudy无法解析php(7.3.4)文件

#告诉服务器,对于以.fcgi、.php或.phtml为后缀的请求,应该使用FPM进行处理。 AddHandler fcgid-script .fcgi .php .phtml #设置了全局默认使用的PHP版本路径 FcgidInitialEnv PHPRC "D:/phpstudy_pro/Extensions/php/php7.3.4nts" #告诉服务器…

十三、Qt多线程与线程安全

一、多线程程序 QThread类提供了管理线程的方法:一个对象管理一个线程一般从QThread继承一个自定义类,重载run函数 1、实现程序 (1)创建项目,基于QDialog (2)添加类,修改基于QThr…

“环波罗的海”包围圈将正式形成

据“直新闻”的消息称,近日匈牙利国会同意了瑞典加入北约的申请,在走完相关后续程序后,瑞典就将成为北约第三十二个成员国,而北约对俄罗斯打造的“环波罗的海”包围圈也将正式形成,即除俄方外,波罗的海周边…

遥感影像处理(ENVI+ChatGPT+python+ GEE)处理高光谱及多光谱遥感数据

遥感技术主要通过卫星和飞机从远处观察和测量我们的环境,是理解和监测地球物理、化学和生物系统的基石。ChatGPT是由OpenAI开发的最先进的语言模型,在理解和生成人类语言方面表现出了非凡的能力。本文重点介绍ChatGPT在遥感中的应用,人工智能…

111期_C++_2024年1月份作业博客_选择题错题总结

一、野指针问题:在定义的时候没有初始化,就不能能用scanf 或 printf 二、一个变量出现在表达式的两边作为两个不同的操作数, 并且其中一个操作数带有,此时表达式出现歧义 三、两端出栈问题: 错因:未理解题…

力扣SQL50 进店却未进行过交易的顾客 查询

Problem: 1581. 进店却未进行过交易的顾客 文章目录 思路Code 思路 👨‍🏫 山山山林老木 左连接查询筛选 transation_id 为 null 的值group by customer_id Code select v.customer_id ,count(customer_id) count_no_trans from Visits v left jo…

java -进行堆转储文件分析

文章目录 前言java -进行堆转储文件分析1. 首先在window上主动生成堆转储文件2. 获取堆转储文件的方式3. 堆转储文件分析 前言 如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。   而且听说点赞的人…

【24年最新版PythonPycharm安装】保姆级别安装教学!附激活码插件分享~

Python 下载安装 Python可以编译成可执行文件(。 py),并通过网络在计算机和其它终端设备上运行。它有内置的数据类型、函数、类和对象,可以将其用于各种目的,例如管理数据和脚本开发。 Python已经成为一种非常流行的…

PyTorch深度学习快速入门

PyTorch深度学习快速入门 1.PyTorch环境配置及安装2.python编辑器的选择、安装、配置(pycharm、JupyTer安装)3.为什么torch.cuda.is_available()返回false4.python学习中两大法宝函数(也可用在pytorch)5.pycharm和jupyter&#xf…

论文设计任务书学习文档|基于Vue.js的库存管理系统的设计与实现

文章目录 论文(设计)题目:基于Vue.js的库存管理系统的设计与实现1、论文(设计)的主要任务及目标2、论文(设计)的主要内容3、论文(设计)的基本要求4、进度安排论文(设计)题目:基于Vue.js的库存管理系统的设计与实现 1、论文(设计)的主要任务及目标 基于Vue.js的…

Android Shadow插件化框架分析与集成(一)

一、shadow源码导入及分析 1、下载项目源码 2、导入到Android studio 3、设置jdk及sdk版本 包/应用描述类型sample-constant公共字符串常量libsample-host宿主应用applicationsample-host-lib宿主应用依赖包libsample-manager是插件管理器的动态实现,主要负责加载插件和安装…

【C++】用文件流的put和get成员函数读写文件

题目 编写一个mycopy程序,实现文件复制的功能。用法是在控制台输入: mycooy 源文件名 目标文件名 参数介绍 m a i n main main 函数的参数有两个,一个int类型参数和一个指针数组。 a r g c argc argc 表示参数的个数。参数为void时 a r g …

跨区域复制建筑UI输入框脚本迷你世界

--复制区域文件 --设置坐标起点,终点 --创建区域 --获取坐标id,data --星空露珠工作室制作 local pos1{x-16,y7,z28} local pos2{x28,y44,z-9} local block{num0} local str{} local str0{} local num0 local count0 local ui6 --几个输入框 local romath.random(…

redis-RedisTemplate.opsForGeo 的geo地理位置及实现附近的人的功能

redis内部使用的是 zset 数据结构存储,如下 import cn.huawei.VideoApplication; import cn.huawei.domain.Jingqu; import cn.huawei.service.JingquService; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired…

Typora快捷键设置详细教程(内附每个步骤详细截图)

😎 作者介绍:我是程序员洲洲,一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主、前后端开发、人工智能研究生。公粽号:程序员洲洲。 🎈 本文专栏:本文…

leetcode:860.柠檬水找零

题意:按照支付顺序,进行支付,能够正确找零。 解题思路:贪心策略:针对支付20的客人,优先选择消耗10而不是消耗5,因为5可以用来找零10或20. 代码实现:有三种情况(代表三种…