意向锁:意向共享锁和意向排它锁
意向锁是表锁、为了协调行锁和表锁的关系、支持多粒度(表锁和行锁)的锁并存。
作用:当有事务A有行锁时、mysql会自动为该表添加意向锁、事务B如果想申请表写锁、
不需要遍历每一行判断是否存在行锁、直接判断是否存在意向锁、增强性能。
意向锁为什么是表级锁?
如果意向锁是行锁、则需要判断每一行数据去确认
如果意向锁是表锁、则只需要判断一次即可知道有么有数据行被锁定、提升性能
A窗口
STARTTRANSACTION
select*frompersonwhereid=1lockinsharemode
select*frompersonwhereid=1forupdate
SELECT*FROMperformance_schema.data_locks
COMMIT;
B窗口
locktablespersonread;
unlocktables;