Day02复习-lock

总结(Summary)

重难点分析

  • MySQL中的锁的应用场景

并发场景下的数据竞争

  • MySQL中锁的类型以及锁应用实践 
1. 从性能上讲可以分为乐观锁和悲观锁。
2. 从操作类型上讲可以读锁(共享锁)和写锁(排它锁)
2-1. 共享锁 (select * from regions where id=13 lock in share mode),又称为S锁,
   允许当前事务读取一行,阻止其它事务获取相同数据集的排它锁。
   
2-2. 排它锁 (select * from regions where id=13 for update),又称为X锁。
   允许当前事务更新数据,阻止其它事务获取相同数据集的共享锁和排它锁。
3. 从数据操作粒度上来讲可以分为全局锁、表锁、行锁、间隙锁(between 100 and 200)、...
  • MVCC应用场景、设计以及实现原理。

MVCC是多版本并发控制,保证性能的基础上实现事务的隔离级别。有四大特性:

1. 原子性(通过undolog实现-执行回滚)
2. 隔离性(通过锁,MVCC-多版本并发控制)
3. 一致性(通过undolog,redolog,binlog)
4. 持久性(通过redolog日志实现)

FAQ分析

  • 如何保证事务的四大特性落地?(回滚日志,重做日志,binlog,锁和MVCC)
  • 为什么使用锁?(保证事务并发执行时数据的正确性)
  • MySQL中常用的锁的类型?(全局锁,表锁、行锁、间隙锁、...)
  • 什么是共享锁(读共享、乐观锁)、排它锁(悲观锁)?
  • 如何理解全局锁以及如何添加全局锁?(对所有库的一种加锁方式)
  • 如何理解表锁以及如何添加表锁?(表读锁、表写锁)
  • 如何添加行读锁(共享锁)?select xx from xx where xx lock in share mode
  • 如何添加行写锁(排它锁)? select xx from xx where xx lock for update
  • 如何理解mysql中的死锁?(并发事务处于相互等待的一种状态)
  • 如何理解MVCC?(多版本并发控制,用于更好实现事务隔离,例如RC、RR)
  • MVCC底层逻辑是如何实现的?(依赖于回滚日志链、ReadView,记录中的隐藏字段)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值