一、锁的分类
按粒度: 表锁:锁整张表,开销小,并发低 行锁:锁某几行,开销大,并发高 按模式: 共享锁(读锁):可以并发读 排他锁(写锁):独占二、InnoDB 行锁
-- 共享锁SELECT*FROMuserWHEREid=1LOCKINSHAREMODE;-- 排他锁SELECT*FROMuserWHEREid=1FORUPDATE;三、死锁
-- 死锁场景:-- 事务A: 锁了 1,想锁 2-- 事务B: 锁了 2,想锁 1-- 互相等待 → 死锁-- 解决:-- 1. 按固定顺序加锁-- 2. 缩短事务时间-- 3. InnoDB 会自动检测并回滚其中一个事务四、查看锁
-- 查看当前锁信息SELECT*FROMinformation_schema.INNODB_TRX;-- 查看锁等待SELECT*FROMinformation_schema.INNODB_LOCK_WAITS;💡 觉得有用的话,点赞 + 关注【张老师技术栈】吧!