; END IF;我遇到的问题是,当我在步骤1之后模拟滞后(通过使用下面是和的代码(注意:对于这个小例子,我没有费心使用索引和外键,但显然我在实际的项目中使用了这些)。要查看我的问题,只需在数据库中设置表和过程,然后打开两个mysql终端,在第一个中运行以下命令:SELECT @out;
然后在第二次运行中快速运
我们有一个高性能的Django web应用程序,它使用MySQL的InnoDB的行级锁定。在我们的代码中,我们看到(在进程A中),如果使用SELECT … FOR UPDATE,表中的特定行是可用的。如果有另一个进程(B)正在使用该行,并且先到达该行,则该行上将有一个独占锁,而A将得到一个“锁定等待超时”异常。A将捕捉到这一点,然后继续尝试另一行(使用类似的SELECT … FOR UPDATE方法)。
但是,我不能