gpt4 book ai didi

.net - Commit 期间 MySQL 超时

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

我们的 MySQL 遇到了神秘的网络问题。简单的更新查询(使用索引更新单行)通常会立即运行,然后有时(假设 1000 次中有 1 次)因超时而失败。与简单的插入查询相同。数据库没有过载。我们怀疑网络问题并正在寻找解决方案,所以如果有人遇到此类问题,我肯定会去解决。

现在进入重点。更糟糕的是,插入查询在事务提交期间失败(我们几乎没有类似的查询,但即使在最简单的查询中也会发生这种情况 - 仅向单个表中插入一次,没有锁,什么都没有)。当它发生时,transaction.Commit 抛出异常。我们捕获它并假设事务已回滚并再次尝试插入数据。

结果是表中有相同数据的两行。如果 Commit 失败,有哪些可能的假设?是否插入了行?这是 MySql Connector/Net 中的行为错误还是设计使然。有什么建议(除了手动检查数据是否在表中)?

提前致谢。布兰科

附注我在 MySQL .NET 连接器论坛上发布了同样的消息。如果这打扰了任何人,我深表歉意,但我越来越绝望了。哦:-)

最佳答案

如果提交因网络错误而失败,则无法进行任何假设。我知道很难针对它进行编程,但确实如此 ;) 增加命令超时可能会有所帮助。但同样,如果在数据库中持久化事务更改后连接丢失,但客户端未收到来自服务器的确认,则事务状态未定义。

关于.net - Commit 期间 MySQL 超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4041631/

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