Mysql底层原理九:Undo log

3.6 Undo log

Undo log主要为了保证原子性,事务中的操作要么全部完成,要么什么都不做

  1. Undo log没有用 undo log buffer,Undo log是写到系统表空间的 undo段里面去的,就是说其实利用的是mysql的数据页来存放,多条undo形成单向链表,如果单个数据页放不下就放到其他数据页,undo log数据页之间通过双向链表连接
  1. undo长什么样?
    1. insert undo
复制代码
  - undo type
  - undo no
  - old roll pointer 指向前一个 undo log,形成版本链
  - trx_id  事务id
  - 主键列值,因为是insert嘛,所以undo的时候只需要根据主键id删除就行
  1. delete undo
复制代码
     - undo type
     - undo no
     - old roll pointer指向前一个 insert undo log
     - trx_id
     - 各行的数据
  1. 物理存储:undo log存放到系统表空间->undo log段-> undo log数据页, undo log像行记录一样,通过单向链表连接起来,然后叶子节点数据页的行记录用指针指向undo log
  1. 逻辑存储:第一条是行记录,然后后面都是undo log版本链
相关推荐
李木子qaq12 小时前
什么是数据库代理
数据库·proxy模式
LNN202212 小时前
半导体设备上位机 Qt 实现计划
开发语言·数据库·qt
牧瀬クリスだ12 小时前
MYSQL的视图
数据库·mysql
m0_7414817812 小时前
SQL删除包含敏感信息的数据_使用数据脱敏后执行删除
jvm·数据库·python
2401_8822737212 小时前
如何用立即执行函数(IIFE)创建独立的作用域隔离变量
jvm·数据库·python
TDengine (老段)12 小时前
TDengine 时序数据库在城市燃气场景的落地实践
大数据·数据库·人工智能·物联网·时序数据库·tdengine·涛思数据
七夜zippoe12 小时前
DolphinDB查询优化:执行计划分析
大数据·数据库·信息可视化·dolphindb·查询优化
skilllite作者12 小时前
Agent-Skills 核心能力与实战效能深度评测
大数据·开发语言·前端·数据库·人工智能·python
尚雷558012 小时前
oracle知识整理_锁及等待事件SQL_第二部分
数据库·sql·oracle·锁及等待事件
2301_7662834412 小时前
mysql如何实现读写分离的权限分配_不同用户分别赋予权限
jvm·数据库·python