面试题:MySQL 事务 日志 MVCC

在这里插入图片描述

事务的特性 ACID

在这里插入图片描述
在这里插入图片描述

事务的隔离级别

在这里插入图片描述

  • 并发事务问题
    • 脏读:一个事务读到另一个事务还没有提交的数据
    • 不可重复读:一个事务先后读取同一条记录,但两次读取的数据不同
    • 幻读:一个事务按照条件查询数据时,没有对应的数据行,但是在插入数据时,又发现这行数据已经存在,好像出现了幻影
  • 隔离级别
    • 读未提交
    • 读已提交
    • 可重复读
    • 串行化

日志

在这里插入图片描述
在这里插入图片描述

💖 redo log

redo 重做日志,记录的是事务提交时数据页的物理修改,用来实现事务的持久性

当事务提交后,会把所有修改信息存到该日志文件中,当刷新脏页到磁盘发生错误时,用于数据恢复

  • 重做日志缓存(redo log buffer):内存
  • 重做日志文件(redo log file):磁盘

在这里插入图片描述

💖 undo log

在这里插入图片描述

🌟 小结

在这里插入图片描述

MVCC

多版本并发控制

在这里插入图片描述

💖 隐藏字段

注意:是记录中的隐藏字段
在这里插入图片描述

💖 undo log

在这里插入图片描述
undo log 版本链
在这里插入图片描述

💖 readview

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

💖 RC 与 RR 的 ReadView

在这里插入图片描述
在这里插入图片描述

💖 总结

在这里插入图片描述

相关推荐

  1. mysql事务日志MVCC

    2024-04-03 05:50:03       54 阅读
  2. MYSQL事务面试记录

    2024-04-03 05:50:03       47 阅读
  3. mysql面试四(事务

    2024-04-03 05:50:03       32 阅读
  4. 面试】谈谈MySQL事务

    2024-04-03 05:50:03       47 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-03 05:50:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-03 05:50:03       101 阅读
  3. 在Django里面运行非项目文件

    2024-04-03 05:50:03       82 阅读
  4. Python语言-面向对象

    2024-04-03 05:50:03       91 阅读

热门阅读

  1. SpringMVC参数绑定

    2024-04-03 05:50:03       36 阅读
  2. 持续集成中软件测试的作用

    2024-04-03 05:50:03       35 阅读
  3. iOS Widget Custom Intent 去除邮件警告

    2024-04-03 05:50:03       39 阅读
  4. cesium 加载gltf并实时改变位置 CallbackProperty方式

    2024-04-03 05:50:03       31 阅读
  5. stm32_中断讲解

    2024-04-03 05:50:03       38 阅读
  6. Android 14.0 解锁状态下禁止下拉状态栏功能实现

    2024-04-03 05:50:03       31 阅读
  7. Mybatis 中的 Executor

    2024-04-03 05:50:03       37 阅读