MySQL三大日志

1. redo log

1.1 特点

  • InnoDB存储引擎独有
  • 物理日志,记录在数据页上做的修改
  • MySQL拥有了崩溃恢复能力,保证事务的持久性

1.2 刷盘时机

  • 事务提交时
  • log buffer 空间使用大约一半时
  • 事务日志缓冲区满
  • InnoDB 定期执行检查点Checkpoint
  • 后台刷新线程,1s一次
  • MySQL 关闭

1.3 刷盘策略

  • 设置为 0 的时候,表示每次事务提交时不进行刷盘操作,最不安全。
  • 设置为 1 的时候,表示每次事务提交时都将进行刷盘操作,最安全。
  • 设置为 2 的时候,表示每次事务提交时都只把 log buffer 里的 redo log 内容写入 page cache,安全性介于0和1之间。

2. bin log 

2.1 特点

  • 属于MySQL Server 层
  • 逻辑日志,记录内容是语句的原始逻辑
  • 用于MySQL数据库的数据备份,保证数据一致性

2.2 记录格式

  • statement  记录的内容是SQL语句原文  
  • row  为解决数据不一致的问题,记录的内容包括SQL语句和具体数据
  • mixed  根据MySQL判断这条SQL语句是否可能引起数据不一致的结果决定使用row格式或statement格式。

2.3 刷盘策略

  • 0表示每次提交事务都只write,由系统自行判断什么时候执行fsync
  • 为1表示每次提交事务都会执行fsync
  • N(N>1)表示每次提交事务都write,但累积N个事务后才fsync

3. undo log

3.1 特点

  • 保证事务的原子性

3.2 作用

  • 事务回滚时将数据恢复到修改前的状态
  •  MVCC的实现,事务通过 undo log 读取之前的版本数据

4.redo log vs bin log

位置写入时机作用
redo log存储引擎层事务执行过程可以不断写入崩溃恢复
bin logserver层提交事务时才写入数据一致性

5. 两阶段提交

redo log的写入拆成了两个步骤preparecommit

 MySQL根据redo log日志恢复数据时,发现redo log还处于prepare阶段,并且没有对应binlog日志,就会回滚该事务。

从而解决了redo log 和 bin log 日志之间的逻辑一致问题。

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

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

相关文章

postgresql迁移到mysql

1.工具方法:Navicat Premium16 2. 手工方法: 迁移流程 下面是将 Postgresql 数据库迁移到 MySQL 的步骤流程: 步骤描述1. 创建MySQL表结构在MySQL中创建与Postgresql中的表结构相同的表2. 导出Postgresql数据将Postgresql中的数据导出为SQ…

物联网与智慧城市的无界未来:如何打破传统束缚,开启智能生活新篇章

目录 一、物联网:连接万物的技术革命 1、物联网的发展历程 2、物联网的核心技术 二、智慧城市:未来城市的蓝图与挑战 1、智慧城市的蓝图 2、智慧城市建设面临的挑战 3、应对挑战的措施 三、物联网与智慧城市的融合:打破传统束缚&…

【技术分享】远程透传网关-单网口快速实现西门子S7-300/400 PLC程序远程上下载

准备工作 一台可联网操作的电脑一台单网口的远程透传网关及博达远程透传配置工具网线一条,用于实现网络连接和连接PLC一台西门子S7- 300/400 PLC及其编程软件一张4G卡或WIFI天线实现通讯(使用4G联网则插入4G SIM卡,WIFI联网则将WIFI天线插入USB口&#…

2. goLand安装及外配置参数通用用法

目录 概述测试代码解决外配置参数结束 概述 选择版本安装 go 安装的版本 1.go安装及相关配置 goLand 对于 习惯 idea 系列使用的人,还是很友好的。 测试代码 package mainimport ("flag""fmt""os" )func main() {name : flag.St…

Docker五部曲之四:Docker Compose

文章目录 前言Compose应用程序模型Compose规范顶层属性servicenetworkvolumesconfigssecrets 环境变量.env文件environment属性主机shell中的环境变量 Profiles(剖面)启动剖面自动启动剖面和依赖项解析 多compose.yml文件共享与扩展构建规范构建属性 部署…

STL中的stack、queue以及deque

目录 一、关于deque容器(双端队列) 1、deque的底层实现 2、deque的缺点 3、关于stack与squeue默认使用deque容器 二、stack简介 1、stack的成员函数(接口) 2、stack的模拟实现 三、queue简介 1、queue的成员函数&#xff08…

Centos 更换内核

文章目录 一、查看/更换系统内核1.1 查看当前运行环境的内核1.2 查看系统上所有可用内核1.3 切换内核方法一:通过启动菜单更换内核方法二:更换默认启动内核 二、安装内核2.1 使用ELRepo安装2.2 安装指定内核版本参考资料 一、查看/更换系统内核 1.1 查看…

Spring06

一、SpirngMvc的基本概念 Spring MVC 是 Spring 提供的一个基于 MVC 设计模式的轻量级 Web 开发框架,本质上相当于 Servlet。 MVC(Model View Controller),一种用于设计创建Web应用程序的开发模式 Model(模型&#xff…

072:vue+mapbox 点击某图层feature,高亮这部分

第072个 点击查看专栏目录 本示例是介绍如何在vue+mapbox中点击某图层feature,高亮这部分。思路是通过点击,获取点击部分的feature信息,生成一个新的source和layer,如果这个图层不为空,则清除之,相当于点击了别的地方,原有的高亮会删除掉,在别的地方高亮。 直接复制下…

【江科大STM32合集】day2按键控制LED光敏传感器控制峰鸣器

【STM32合集】day2按键控制LED&光敏传感器控制峰鸣器 电路基础c语言基础main.ckey.c结果 实现一个键开关灯实验结果避坑 电路基础 运算放大器-在江科大51单片机b站视频(AD/DA)复习 原理:两个极端 同相输入端电压 》反相输入端 电压输出最…

LeetCode、2542. 最大子序列的分数【中等,排序+小顶堆】

文章目录 前言LeetCode、2542. 最大子序列的分数【中等,排序小顶堆】题目及类型思路及代码实现 资料获取 前言 博主介绍:✌目前全网粉丝2W,csdn博客专家、Java领域优质创作者,博客之星、阿里云平台优质作者、专注于Java后端技术领…

VL171 VL170配合LDR6020的type-c母座显示器方案

兼容基于VASEL控制引脚的10 Gbps USB3.2 Gen2和AM所有4通道视频,包括DP1.4 8.1 Gbps VL171配合LDR6020实现的type-c桌面显示器方案电路LDR6020是一个DRP的PD芯片,PD芯片与主机通讯完之后,通过PD芯片去控制VL171实现正反插与USB信号和DP信号的…