事务
2025-03-29 13:20:07 0 举报
AI智能生成
没事哒没事哒
作者其他创作
大纲/内容
并发控制
共享锁(读锁)<br>
排他锁(写锁)<br>
锁
意向锁是数据库管理系统中用于实现锁协议的一种锁机制,旨在处理不同锁粒度(如行锁和表锁)之间的并发性问题。
乐观锁
不加锁,提交时检查冲突,若冲突则重试或回滚。
悲观锁
操作前锁定资源,确保独占访问。
锁的颗粒度
表锁((MyISAM只有表锁,没有事务)<br>
行锁((InnoDB、XtraDB)<br>
事务概念<br>
事务内的语句要么全部执行,要么全部失败
原子性、一致性、隔离性、持久性
隔离级别
RU(read uncommitted)未提交读(事务可以读其他未提交数据)<br>
RC(read committed)提交读(一个事务开始时,只可以看见已提交的事务所做的修改)<br>
MVCC(每次查询新建readView)+ 行级锁<br>
RR(repeatable read)可重复读(一个事务不管读取多少次同样记录的结果都一样)<br>
MVCC(事务首次查询创建readView)和<br>临键锁(Next-Key Locks) 机制实现<br>
RS(serializable)可串行化(强制事务串行执行)<br>
所有读操作隐式加共享锁:<br>普通 SELECT 语句自动转换为 SELECT ... FOR SHARE(共享锁)。
写操作加排他锁:<br>UPDATE、DELETE、INSERT 默认加排他锁。
范围查询的临键锁(Next-Key Locks)
多版本并发控制(MVCC)<br>
解决
读写问题
并发问题
隔离级别
快照读
通过MVCC查看历史数据<br>
区别于当前读(读锁、写锁)<br>
死锁
MySQL 的自动处理机制(默认)<br>
手动解决死锁
终止阻塞的事务
调整锁等待超时时间
死锁的检测与日志分析
查看死锁日志
开启死锁日志
一次事务的执行过程
0 条评论
下一页