我们在MySQL中有一个使用InnoDB的表,我们使用的是未提交的事务隔离级别。为什么如图所示的设置@x会获得一个锁?mysql> set @x = (select userID from users limit 1);试图从另一个提示更新此表会导致超时错误:
mysql> update users set
MySQL InnoDB表是否等待写锁,甚至等待查询(如SELECT COUNT(*) FROM t )我有50000行的表,有很多更新(每一行都有视图)。InnoDB应该在更新的行上设置一个写锁。但是,当我在这个表上只使用COUNT(*)进行查询时,即使不用等待写锁,MySQL也可以回答这个查询,因为没有UPDATE会更改行数。
非常感谢!