gpt4 book ai didi

mysql - 处理 MySQL/InnoDB 中的死锁

转载 作者:行者123 更新时间:2023-11-30 23:01:35 25 4
gpt4 key购买 nike

我正在不同隔离级别下对 MySQL 进行基准测试。

对于 SERIALIZABLE 的情况,我经常收到此错误:“尝试获取锁时发现死锁;尝试在客户端重新启动事务”

阅读 http://dev.mysql.com/doc/refman/5.6/en/innodb-deadlocks.html对我帮助不大。

我有以下问题:每当我收到消息时,数据库的状态是什么?一切都被卡住,系统期望我做某事,或者我的交易已经中止,我只是得到通知?

我正在使用 jdbc 驱动程序连接到 MySQL。假设我的策略是重新发出此类失败的事务,我是否需要调用 connection.rollback() 或 MySQL 已经为我完成了?

最佳答案

在出现死锁的情况下,MySQL 会检测到它并在必要时自动回滚事务以打破死锁。它倾向于回滚较小的事务(受影响的行)。

如果您的交易被回滚,则假设您将重新发出交易。 MySQL 不会为你做这件事。

当您收到这样的警报时,MySQL 没有等待任何事情。它已经执行了回滚。

关于mysql - 处理 MySQL/InnoDB 中的死锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23737692/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com