mvcc行级锁实验——update与insert(主键自增与主键不自增的区别)

本文通过实验探讨了在MVCC环境下,update操作在同一行和不同行时的行为,以及在主键自增和非自增表中insert操作的并发效果。在主键非自增表中,并发插入可能导致主键冲突和阻塞,而在主键自增表中,插入操作能高效并发,但可能影响插入效率。实验强调了主键自增在并发控制中的优势,并提出了关于索引管理和事务优化的建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前提:关闭自动提交模拟多线程情形:set auto_commit=0

 

update:如果同时对于同一行进行update,那么后更改的线程将进入阻塞

事务1:更新成功未提交 

                                                     

 事务2:等待事务1提交并阻塞

  

如果等待时间过长,则mysql会让阻塞事务自动放弃锁的争夺,需要重新发起事务

事务2阻塞等待过长报错,要求重新发起事务:

如果事务2等待没有超时,则等待过后更新成功,这时事务2没有提交,则是更新到事务2的快照中。那么如果事务1提交,并开启一个事务读取(我们在事务1中写查询语句,mysql会自动帮我们开启一个事

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值