面试题:MySQL 事务 日志 MVCC

事务的特性 ACID


事务的隔离级别

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

日志


💖 redo log

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

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

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

💖 undo log

🌟 小结

MVCC

多版本并发控制

💖 隐藏字段

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

💖 undo log


undo log 版本链

💖 readview




💖 RC 与 RR 的 ReadView


💖 总结

相关推荐
标致的自行车10 分钟前
Entity Framework之问题收集
jvm·数据库·oracle
啵啵鱼爱吃小猫咪17 分钟前
Franka机械臂安装实时内核
数据库·postgresql
今天也是元气满满的一天呢1 小时前
从单机架构到负载均衡的互联网架构全流程
数据库·系统架构
SelectDB1 小时前
快手 AB 场景提速 145 倍,从 Spark 到 Apache Doris 的加速实践
数据库·spark·开源
SelectDB1 小时前
阶跃星辰 Agent 可观测实践:为什么 Trace 数据底座选择 SelectDB?
大数据·数据库·agent
冷静的楼房1 小时前
使用ThreadPool发起同步的调用
数据库
一个天蝎座 白勺 程序猿1 小时前
自动SQL优化实战|吃透调优接口+报告配置+统计+索引全流程落地
数据库·sql·sql优化
TDengine (老段)1 小时前
# TDengine TMQ 最佳实践 — 可靠消费、容错与监控
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
杨云龙UP2 小时前
Windows SQL Server 备份无法传输至异地共享目录排查处理
运维·服务器·数据库·windows·共享·smb·异地备份传输
落寞的电源2 小时前
Delegate = Object + MethodInfo
开发语言·数据库·c#