面试题:MySQL 事务 日志 MVCC

事务的特性 ACID


事务的隔离级别

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

日志


💖 redo log

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

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

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

💖 undo log

🌟 小结

MVCC

多版本并发控制

💖 隐藏字段

注意:是记录中的隐藏字段

💖 undo log


undo log 版本链

💖 readview




💖 RC 与 RR 的 ReadView


💖 总结

相关推荐
MZZDX30 分钟前
MySQL相关知识总结
数据库·mysql
青山撞入怀11142 小时前
sql题目练习——聚合函数
数据库·sql
disanleya3 小时前
MySQL默认端口为何是3306?修改后如何管理?
数据库·mysql·adb
川石课堂软件测试6 小时前
MySQL数据库之DBA命令
数据库·网络协议·mysql·http·单元测试·prometheus·dba
ybb_ymm7 小时前
mysql8在linux下的默认规则修改
linux·运维·数据库·mysql
倔强的石头_8 小时前
Navicat Premium 与金仓数据库融合实践:高效管理国产数据库新方案
数据库
程序新视界8 小时前
为什么要尽量将MySQL表字段要设置为NOT NULL?
数据库·mysql·dba
怪兽20149 小时前
SQL优化手段有哪些
java·数据库·面试
lypzcgf9 小时前
FastbuildAI后端数据库模块注册分析
数据库·ai应用·ai创业·智能体平台·ai应用平台·agent平台·fastbuildai