Mysql锁家族
2023-01-13 09:53:31 0 举报
AI智能生成
Mysql中锁的分类
作者其他创作
大纲/内容
span style=\
SELECT ... LOCK IN SHARE MODE
SELECT ... FOR SHARE
查询时获取读锁的两种方式
立即报错返回
NOWAIT
SKIP LOCKED
在SELECT ... FOR UPDATE 后可以添加关键字,用于控制没有获取到锁时的行为
MySQL8.0新特性
共享锁(读锁)
UPDATE ... FOR UPDATE
修改时获取写锁的方式
S锁和X锁兼容性
DELETE
情况3:修改了该记录的键值
UPDATE
INSERT
写操作
排他锁(写锁)
对数据的操作类型划分
LOCK TABLES t READ
LOCK TABLES t WRITE
获取表锁
UNLOCK TABLES t;
释放锁
SHOW OPEN TABLES;
查看表锁情况
总结
表级别的S锁、x锁
事务有意向对表中的某些行加共享锁(S锁)
事务有意向对表中的某些行加排他锁(x锁)
意向锁兼容情况
意向锁
自增锁 AUTO-INC 锁
MDL读锁
MDL写锁
元数据锁(MDL)
表级锁
S型记录锁
X型记录锁
记录锁(Record Locks)
间隙锁(Gap Locks)
记录锁+间隙锁
临键锁(next key locks)
插入意向锁(insert intention locks)
行级锁
页级锁
锁粒度角度划分
悲观锁(Pessimistic Locking)
乐观锁(Optimistic Locking)
对锁的态度划分
隐式锁
通过特定的语句进行加锁
添加显示共享锁
SELECT ... FOR UPDATE
添加显示排他锁
显示锁
加锁方式划分
全局锁
死锁
其他
MySQL锁家族
0 条评论
下一页