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,锁住区间加记录
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步