MySQL的事务和锁
一、事务的四个特性:
- 原子性
- 一致性
- 隔离性
- 持久性
二、四种隔离级别:
- 读未提交
- 读已提交:解决脏读
- 可重复读:解决脏读、不可重复读
- 串行化:解决所有事务并发问题
三、事务隔离级别解决方案:
- LBCC:在读取数据前,对其加锁,阻止其它事务对数据的操作,Lock Based Concurrency Control
- MVCC:生成一个数据请求时间点的一致性数据快照,并用这个快照来提供一定级别的一致性读取,Multi Version Concurrency Control
四、锁的模式:
- 共享锁(行锁):Shared Locks,又称为读锁。加锁方式:select .... LOCK IN SHARE MODE; 释放锁:commit / rollback;
- 排他锁(行锁):Exclusive Locks,又称为写锁。加锁方式:自动:delete / update / insert 默认加写锁;手动:select 。。。FOR UPDATE;释放锁:commit / rollback;
五、行锁算法:
- 记录锁:Record Locks,锁住记录
- 间隙锁:Gap Locks,锁住区间
- 临键锁:Next-Key Locks,锁住区间加记录
作者:超级鲨鱼辣椒
转载请注明原文链接:https://www.cnblogs.com/jinzlblog/p/15095372.html