事务的特性 ACID
事务的隔离级别
- 并发事务问题
- 脏读:一个事务读到另一个事务还没有提交的数据
- 不可重复读:一个事务先后读取同一条记录,但两次读取的数据不同
- 幻读:一个事务按照条件查询数据时,没有对应的数据行,但是在插入数据时,又发现这行数据已经存在,好像出现了幻影
- 隔离级别
- 读未提交
- 读已提交
- 可重复读
- 串行化
日志
💖 redo log
redo 重做日志,记录的是事务提交时数据页的物理修改,用来实现事务的持久性。
当事务提交后,会把所有修改信息存到该日志文件中,当刷新脏页到磁盘发生错误时,用于数据恢复
- 重做日志缓存(redo log buffer):内存
- 重做日志文件(redo log file):磁盘
💖 undo log
🌟 小结
MVCC
多版本并发控制
💖 隐藏字段
注意:是记录中的隐藏字段
💖 undo log
undo log 版本链
💖 readview
💖 RC 与 RR 的 ReadView