MySQL中有哪些日志类型?

MySQL有binlog、redo log和undo log三种日志,其中binlog 负责主从复制和数据恢复,redo log保证崩溃后数据不丢失,undo log支撑事务回滚和MVCC。

1.binlog

binlog 是server层的日志,记录的是逻辑操作,也就是原始SQL或者行变更前后的值。

它的核心场景是主从同步,从库拉取主库到binlog重放一遍就能保持数据一致。

另外,做数据恢复的时候,也是靠binlog配合全量备份回放到指定时间点。

2.redo log是InnoDB引擎独有的,记录的是物理变更,具体就是"某个数据页的某个偏移量改成了什么值"。

它的作用是崩溃恢复(crash-safe),基于WAL(Write Ahead Log)机制,MySQL挂了重启后,InnoDB会用redo log把没来得及刷盘的脏页恢复出来。

redo log是循环写的,空间固定,写满了就得等checkpoint推进才能继续。

3.undo log也是InnoDB引擎的逻辑日志,记录的是数据修改前的旧值。

事务回滚的时候,就靠undo log把数据改回去,另外MVCC的快照读也依赖它,别的事务要读历史版本,顺着undo log链往前找就行。

相关推荐
SatanII12 小时前
mariadb
数据库·mariadb
大千UI工场13 小时前
时序数据库对数字孪生的作用
数据库·ui·时序数据库·前端开发·b端管理系统
Tongzhi202613 小时前
通芝科技无感考勤一体机:软硬一体,开箱即用
数据结构·数据库·科技·算法·均值算法·数据库开发
这就是佬们吗13 小时前
向量数据库选型与实战:从原理到生产环境的完整指南
数据库
Shawn Dev14 小时前
MySQL Binlog 数据误删除恢复完全指南
数据库·mysql·elasticsearch
oradh14 小时前
Oracle ADRCI 诊断数据工具总结
数据库·oracle·adrci
zzzll111114 小时前
Loop Engineering:循环工程的原理、实践与应用
java·数据库·python
IpdataCloud14 小时前
IPv6查出来的地理位置是错的?技术解析与双栈定位方案
数据库·tcp/ip·ip
数字新视界14 小时前
信创动环监控厂家深入剖析智能机房环境监控技术应用与挑战
服务器·数据库·物联网·芯片·动环监控系统
羑悻的小杀马特14 小时前
打破深海垄断:国产数据库如何托起固井软件的“数据心脏”?
数据库