我的数据库是mysql5.7,innodb,已提交隔离级别。我害怕死锁,所以我保持mysql sql语句简单,只有:
insert into ... where ...insert into ... where ... on duplicate key update ...update ... where ...delete from ... where ...select * from ... where ...每个sql将只有上面的一条语句。例如:连接exec insert into ... where ...;一次,永远不要执行多语句insert ... where ...; update ... where ...; where语句具有唯一的索引约束,以确保除select之外只运行一行。只有select操作将涉及多行。我有64个或更多mysql连接,我将mysql操作分开,以确保每个连接操作不同的行。对于autocommit=1配置,会发生死锁吗?如果死锁概率不是零,那么进入死锁的场景是什么?为什么?我需要帮助。谢谢。
发布于 2021-03-08 02:43:00
如果您的更新将使用多行操作,或者您没有正确的索引,如果您一次在同一行上执行多个操作,那么出现死锁的可能性很高。
如果您在下面的命令中看到了check语句的死锁,则只需一次。
显示ENGINE=InnoDB状态;
https://stackoverflow.com/questions/66485978
复制相似问题