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版本链
相关推荐
低代码布道师17 小时前
Next.js 16 全栈实战(三):数据库建模与动态菜单实现
开发语言·javascript·数据库
远方160918 小时前
114-Oracle Database 26ai在Oracle Linux 9上的OUI图形界面安装
linux·服务器·数据库·sql·oracle·database
heimeiyingwang18 小时前
向量数据库Milvus的安装部署指南
java·数据库·架构·database
山岚的运维笔记18 小时前
SQL Server笔记 -- 第50章 存储过程
数据库·笔记·sql·microsoft·oracle·sqlserver
LSL666_18 小时前
10 集群
java·开发语言·数据库·redis·集群
TDengine (老段)18 小时前
TDengine IDMP 数据可视化 7. 事件列表
大数据·数据库·人工智能·物联网·时序数据库·tdengine·涛思数据
SQL必知必会18 小时前
SQL 条件聚合:超越基础 GROUP BY
数据库·sql
hacklf200818 小时前
数据库高安全—openGauss安全整体架构&安全认证
数据库·安全·架构
全栈前端老曹19 小时前
【Redis】 监控与慢查询日志 —— slowlog、INFO 命令、RedisInsight 可视化监控
前端·数据库·redis·缓存·全栈·数据库监控·slowlog
木子欢儿19 小时前
debian 13 安装配置ftp 创建用户admin可以访问 /mnt/Data/
linux·运维·服务器·数据库·debian