说SELECT FOR UPDATE设置一个IX锁。IX锁是意图排他锁,当发出时它意味着“事务T打算在扫描行上设置X(排它)锁”。MySQL术语表表示,关于意图排他性锁:
一种适用于表级别的锁,用于指示事务打算在表中的行上获取什么样的锁。不同的事务可以在同一表上获取不同类型的意图锁,,但是获取表上的意图排他(IX)锁的第一个事务阻止其
除非DB知道事务中的所有查询(这违背了两阶段锁定机制的全部要点,这种机制应该能够在不知道事务中的所有查询的情况下确保可序列化),否则无法判断事务是否需要获得更多的锁。假设我有如下事务:select * from test_tab where id=1;updatetest_tab set age=100 where id=3;从上面的