面试题:MySQL 事务 日志 MVCC

事务的特性 ACID


事务的隔离级别

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

日志


💖 redo log

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

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

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

💖 undo log

🌟 小结

MVCC

多版本并发控制

💖 隐藏字段

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

💖 undo log


undo log 版本链

💖 readview




💖 RC 与 RR 的 ReadView


💖 总结

相关推荐
不可求~6 小时前
多模型路由怎么落地:把任务分流写进项目的最小实现
java·前端·数据库
Lumistory6 小时前
城市建筑照明的落地与长效运营观察
大数据·数据库·中间件·光照贴图
布莱克6058 小时前
理解 MySQL 架构:从连接层到存储引擎
mysql
围炉聊科技9 小时前
长期免费的数据库方案——零成本基建系列
数据库
AC赳赳老秦9 小时前
公开图片 OCR 数据提取:OpenClaw 合规采集公开信息图,识别文字与表格并转化为结构化数据
java·大数据·前端·数据库·python·php·openclaw
梁辰兴11 小时前
软件工程:数据结构设计
数据库·软件工程·设计原则·设计方法·梁辰兴·数据库结构设计·数据库结构类型
AC赳赳老秦11 小时前
风控岗应用:OpenClaw 采集公开司法与经营异常数据,自动生成企业风险评估报告
大数据·c语言·数据库·人工智能·python·php·openclaw
灯澜忆梦12 小时前
【MySQL18】进阶篇 | MySQL管理
数据库·mysql
zcmodeltech12 小时前
智能制造教学实训沙盘模型多系统协同控制系统设计:基于STM32与Modbus RTU的工业机器人-智慧工厂-数字孪生全场景联动方案
数据库·stm32·嵌入式硬件·机器人·制造·多分类
AI多Agent协作实战派12 小时前
AI多Agent协作系统实战(四十):AI说“没有错误“,系统判了“测试失败“——一个正则的误判
数据库·人工智能