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