InnoDB事务理解

1. 标准事务【官方定义】

read-uncommitted:会出现脏读,读到未提交的内容

read-committed:会出现不可重复读,读到提交了的内容(某行)

repeatable read:会出现幻读,范围读取读到新insert的内容(某范围行)

Serializable:完美

 

2. InnoDB

read-uncommitted:无甚区别

read-committed: 无甚区别

repeatable read【默认】:采用MVCC来避免了不可重复读,采用局部锁(Next-Key Locking)避免了幻读

serializable:无甚区别

 

小结:

所以到底数据库的事务是怎么一回事不能看标准定义,还要看这个数据库本身的实现,不一定是会严格按照定义来实现

 

.  一致性非锁定读

MVCC:多版本技术,在repeatable read模式下,从undo读取事务开始时的行数据版本

. 一致性锁定读

即:select ...... for update, 这里给所有涉及到的所有查询行数据加上x锁

 

. 锁

这个观察好:INNODB_TRX/DATA_LOCKS 就可以推测出大概了。

只要记住:

x/x;x/s 不兼容

s/s 兼容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值