当MySQL/InnoDB中的一行被锁定时(无论是隐式地由于事务的隔离级别,还是显式地使用SELECT * ... FOR UPDATE或.(锁定共享MODE`‘):例如,假设存在一个包含x、y和z列的表,其中对x和y进行了索引。Table WHERE x = foo返回一条记录的语句(x = foo, y = bar, z = c)也
MySQL通过非主索引列更新数据需要对无关记录进行主索引锁。在测试中,我修改了列b中的数据,将原来的两个不同的数字'3‘和'4’改为更明显的数字'3 4 5 6 7‘。当时,锁就像我之前所预期的那样工作,即可以在两个事务中同时执行update test set a = 300 where b = 3 和 update test set a = 400 where b为了直观地显示锁,我这次使用了mysql