MySQL锁分类

image.png
image.png

MySQL的表锁模式兼容矩阵

image.png

InnoDB锁分类/模式

image.png

InnoDB自增锁

image.png

InnoDB锁关系矩阵

image.png

InnoDB行锁实现算法

image.png

InnoDB加锁行为——RR级别

image.png
主键加锁
image.png
唯一键加锁
image.png
非唯一索引
image.png
无索引

InnoDB锁相关视图

image.png

InnoDB死锁产生的四个条件

image.png
InnoDB会自动检测回滚代价较小的事务来解决死锁,但效率很低,通常都需要人为处理

如何避免死锁的产生

image.png

InnoDB死锁案例——争抢资源导致死锁

image.png

InnoDB死锁案例——metadata lock元数据锁

image.png

查看死锁

image.png

InnoDB死锁优化

image.png