小白文 理解 Mysql undo_log redo_log bin_log

2024-01-09 20:58

本文主要是介绍小白文 理解 Mysql undo_log redo_log bin_log,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

小白文 理解 Mysql redo_log undo_log bin_log

  • undo_log
  • redo_log
  • bin_log

undo_log

这个日志记录的是记录数据被修改前的值。

例如:
假设account表中有个名字叫香蕉的人ID为1.
update account set name="蛇皮" where name="香蕉";
undo_log记录的就是旧的数据,类似这样:

idname
1香蕉

undo_log的作用就是为了回滚数据。


redo_log

redo_log仅在InnoDB引擎产生,记录的是数据被修改后的值。
假设account表中有个名字叫香蕉的人ID为1.
update account set name="蛇皮" where name="香蕉";
redo_log记录的是被修改后的数据,类似这样:

idname
1蛇皮

redo_log的作用是为了确保数据不会丢失,无论你是提交事务还是回滚事务都会被记录在redo_log中。因为数据在被刷回磁盘前如果服务器挂了,可以通过redo_log来直接恢复数据(具体是看数据页的LSN,判断是否需要恢复)。

我们知道mysql不同的引擎有不同的数据结构,如果你每次执行事务都刷回磁盘,那IO性能肯定会差的不可想象。redo_log不是每次都会被刷回磁盘,其中还有一层buffer,不同的设置buffer刷回文件的时机不同。

bin_log

bin_log中只记录修改数据的日志,如update delete insert等等,且记录方式为逻辑方式(SQL语句 这和Redis中的AOF很像),Mysql集群会用到,如果数据库需要手动恢复某一时间段的数据,也可以手动通过bin_log恢复。

这篇关于小白文 理解 Mysql undo_log redo_log bin_log的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/588411

相关文章

MySQL中时区参数time_zone解读

《MySQL中时区参数time_zone解读》MySQL时区参数time_zone用于控制系统函数和字段的DEFAULTCURRENT_TIMESTAMP属性,修改时区可能会影响timestamp类型... 目录前言1.时区参数影响2.如何设置3.字段类型选择总结前言mysql 时区参数 time_zon

Python MySQL如何通过Binlog获取变更记录恢复数据

《PythonMySQL如何通过Binlog获取变更记录恢复数据》本文介绍了如何使用Python和pymysqlreplication库通过MySQL的二进制日志(Binlog)获取数据库的变更记录... 目录python mysql通过Binlog获取变更记录恢复数据1.安装pymysqlreplicat

使用SQL语言查询多个Excel表格的操作方法

《使用SQL语言查询多个Excel表格的操作方法》本文介绍了如何使用SQL语言查询多个Excel表格,通过将所有Excel表格放入一个.xlsx文件中,并使用pandas和pandasql库进行读取和... 目录如何用SQL语言查询多个Excel表格如何使用sql查询excel内容1. 简介2. 实现思路3

一文带你理解Python中import机制与importlib的妙用

《一文带你理解Python中import机制与importlib的妙用》在Python编程的世界里,import语句是开发者最常用的工具之一,它就像一把钥匙,打开了通往各种功能和库的大门,下面就跟随小... 目录一、python import机制概述1.1 import语句的基本用法1.2 模块缓存机制1.

深入理解C语言的void*

《深入理解C语言的void*》本文主要介绍了C语言的void*,包括它的任意性、编译器对void*的类型检查以及需要显式类型转换的规则,具有一定的参考价值,感兴趣的可以了解一下... 目录一、void* 的类型任意性二、编译器对 void* 的类型检查三、需要显式类型转换占用的字节四、总结一、void* 的

深入理解Redis大key的危害及解决方案

《深入理解Redis大key的危害及解决方案》本文主要介绍了深入理解Redis大key的危害及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录一、背景二、什么是大key三、大key评价标准四、大key 产生的原因与场景五、大key影响与危

Mysql DATETIME 毫秒坑的解决

《MysqlDATETIME毫秒坑的解决》本文主要介绍了MysqlDATETIME毫秒坑的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 今天写代码突发一个诡异的 bug,代码逻辑大概如下。1. 新增退款单记录boolean save = s

mysql-8.0.30压缩包版安装和配置MySQL环境过程

《mysql-8.0.30压缩包版安装和配置MySQL环境过程》该文章介绍了如何在Windows系统中下载、安装和配置MySQL数据库,包括下载地址、解压文件、创建和配置my.ini文件、设置环境变量... 目录压缩包安装配置下载配置环境变量下载和初始化总结压缩包安装配置下载下载地址:https://d

MySQL中的锁和MVCC机制解读

《MySQL中的锁和MVCC机制解读》MySQL事务、锁和MVCC机制是确保数据库操作原子性、一致性和隔离性的关键,事务必须遵循ACID原则,锁的类型包括表级锁、行级锁和意向锁,MVCC通过非锁定读和... 目录mysql的锁和MVCC机制事务的概念与ACID特性锁的类型及其工作机制锁的粒度与性能影响多版本

MYSQL行列转置方式

《MYSQL行列转置方式》本文介绍了如何使用MySQL和Navicat进行列转行操作,首先,创建了一个名为`grade`的表,并插入多条数据,然后,通过修改查询SQL语句,使用`CASE`和`IF`函... 目录mysql行列转置开始列转行之前的准备下面开始步入正题总结MYSQL行列转置环境准备:mysq