1

所以我正在使用 mysqli,当我尝试执行以下查询时:

UPDATE Security.Users SET firstName = 'RYANTEST' WHERE id = '1'

虽然 Security.Users 表上有一个锁,但我的 php 脚本只是永远挂起(到目前为止,我测量的最长约为 11 分钟)。

这不应该返回错误或至少超时吗?

我尝试在mysql上设置interactive_timeout和waiting_timeout,但没有成功。我还尝试将 php 脚本设置为 3 秒后超时,但再次没有运气(直接在脚本中使用 set_time_limit() )。

我不确定我还能尝试什么。

4

2 回答 2

0

看看这篇 SO 帖子,它描述了如何为 mysql 长时间运行的查询设置超时

如果需要太长时间,如何停止 MySQL 查询?

于 2012-06-07T18:33:47.377 回答
0

不,这是正常行为。如果一个表被锁定,所有其他也需要锁定该表的请求将等待轮到它们,直到前一个锁被释放。

这是为了确保竞争环境中的数据完整性。

于 2012-06-07T18:33:33.460 回答