myql innodb 锁机制
读锁和写锁的定义读锁又称共享锁S锁。对于同一条记录一个事务加读锁时另一个事务也能加读锁但是不能加写锁。写锁又称独占锁X锁。对于同一条记录一个事务加写锁时另一个事务不能加读锁也不能加写锁。InnoDB存储引擎默认使用锁级别默认使用行锁支持表级锁。即默认锁一行或者多行记录但是某些场景行锁会升级为表锁锁定全部记录。默认情况下mysql不会自动加读锁会自动加写锁。不加锁即使存在行锁甚至表锁的情况下也能查询因为不需要获取锁。select * from order where id5指定加锁lock in share mode如果记录存在写锁则下面sql会阻塞。select * from order where id 5 lock in share mode自动加写锁update order set pay_status1 where id5自动加写锁delete from order where id5自动加写锁insert into order () values ()行锁升级为表锁场景场景一查询全部数据或者删除全部数据select * from order for update;加的写锁delete from order;场景二未使用索引或者索引失效update order set pay_status5 where trx_id20230331; (trx_id未加索引数据量大时耗时长如果锁表的话会严重影响业务)参考https://www.cnblogs.com/jiyuchen1/p/16507886.html