数据库
首页 > 数据库> > MySQL竞争条件

MySQL竞争条件

作者:互联网

这会导致MySQL(InnoDB)的竞争条件:

>开始交易.
>尝试记录.
>如果记录不存在,请返回.
>如果存在记录,请将其删除并添加一个说明已删除的日志条目.
>结束事务(提交/回滚).

是否可以在2b中的删除步骤之前启动另一个进程,检测是否存在记录,然后让两个进程在项目中输入项目删除条目?

我需要采取什么预防措施吗?

谢谢.

解决方法:

在步骤2中使用“select for update”.只有一个进程可以锁定该行,从而避免了您描述的情况.

标签:multithreading,mysql,database,race-condition,innodb
来源: https://codeday.me/bug/20191007/1864237.html