面试题:MySQL 事务 日志 MVCC

事务的特性 ACID


事务的隔离级别

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

日志


💖 redo log

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

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

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

💖 undo log

🌟 小结

MVCC

多版本并发控制

💖 隐藏字段

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

💖 undo log


undo log 版本链

💖 readview




💖 RC 与 RR 的 ReadView


💖 总结

相关推荐
xxxmine15 小时前
Redis 持久化详解:RDB、AOF 与混合模式
数据库·redis·缓存
yufuu9815 小时前
使用Scikit-learn进行机器学习模型评估
jvm·数据库·python
MMME~15 小时前
Ansible模块速查指南:高效定位与实战技巧
大数据·运维·数据库
甘露s16 小时前
深入理解 Redis:事务、持久化与过期策略全解析
数据库·redis
珠海西格16 小时前
远动通信装置为何是电网安全运行的“神经中枢”?
大数据·服务器·网络·数据库·分布式·安全·区块链
小宇的天下16 小时前
Calibre 3Dstack --每日一个命令day18【floating_trace】(3-18)
服务器·前端·数据库
星空露珠16 小时前
速算24点检测生成核心lua
开发语言·数据库·算法·游戏·lua
what丶k16 小时前
SpringBoot3 缓存抽象深度实践:Caffeine+Redis多级缓存,穿透/雪崩/击穿防御全方案
数据库·redis·缓存
咖啡の猫16 小时前
Redis简单介绍
数据库·redis·缓存
-XWB-16 小时前
【Oracle】Oracle诊断系列(4/6):表空间与对象管理——存储优化与空间规划
数据库·oracle