MySQL事务机制
所属分类 mysql
浏览量 1392
ACID
原子性(Atomicity) 一致性(Consistency) 隔离型(Isolation) 持久性(Durability)
事务实现
日志文件(redo log 和 undo log) 锁 MVCC
重做日志缓冲(redo log buffer) 重做日志文件(redo log)
缓冲池(Buffer Pool)
redo log 用来恢复数据 保证已提交事务的持久化特性。
undo log 回滚日志,记录数据被修改前的信息。 保证 未提交事务的原子性
读写锁
共享锁(shared lock) 读锁
排他锁(exclusive lock) 写锁
MVCC (MultiVersion Concurrency Control) 多版本并发控制。
undo log 记录某行数据多个版本的数据
read view 用来判断当前版本数据的可见性
事务隔离级别
READUNCOMMITED(未提交读)
读不加锁,写操作可在读的过程中修改数据,所以会造成脏读。 读写并行,提升并发处理能力
READCOMMITED(提交读)
使用写锁, 读不加锁 使用 MVCC
select时生成一个版本号,读的不是一个副本而是不同的副本。
select之间有其他事务更新提交了读取的数据,会出现不可重复读
REPEATABLEREAD(可重复读)
两种实现 读写锁 和 MVCC
基于读写锁简单,但无法并行
MVCC实现
多次读取只生成一个版本,读到相同的数据
无法解决幻读
SERIALIZABLE (可重复读)
原子性
使用 undo log ,可回滚
持久性
使用 redo log,故障后恢复
隔离性
使用锁及MVCC,读写分离,读读并行,读写并行
一致性
通过回滚,恢复 以及在并发环境下的隔离达到一致性
mysql MVCC 和 事务隔离级别
Mysql锁机制
Mysql事务隔离级别
上一篇
下一篇
使用jmx监控jvm
jvm参数查看
gc日志相关参数
秒杀系统设计思路
Shenandoah垃圾收集器
httpclient post json数据