首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当autocommit=1和所有的sql都足够简单到只够CRUD一行时,mysql死锁会发生吗?

当autocommit=1和所有的sql都足够简单到只够CRUD一行时,mysql死锁会发生吗?
EN

Stack Overflow用户
提问于 2021-03-05 02:40:40
回答 1查看 196关注 0票数 1

我的数据库是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配置,会发生死锁吗?如果死锁概率不是零,那么进入死锁的场景是什么?为什么?我需要帮助。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-08 02:43:00

如果您的更新将使用多行操作,或者您没有正确的索引,如果您一次在同一行上执行多个操作,那么出现死锁的可能性很高。

如果您在下面的命令中看到了check语句的死锁,则只需一次。

显示ENGINE=InnoDB状态;

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66485978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档