MySql事务
参考文章
可重复读没有彻底解决幻读
高并发场景下
- 快照读 是基于MVCC
- 当前读是最新记录 会产生幻读 需要开启gap和next-lock 来部分解决
MVCC(Multi-Version Concurrency Control多版本并发控制):
隐藏字段
- DATA_TRX_ID 字段记录了数据的创建和删除时间,这个时间指的是对数据进行操作的事务的id
- DATA_ROLL_PTR 指向当前数据的undo log记录,回滚数据就是通过这个指针
- DELETE BIT 位用于标识该记录是否被删除,这里的不是真正的删除数据,而是标志出来的删除。真正意义的删除是在mysql进行数据的GC,清理历史版本数据的时候。