所以我使用的是mysqli,当我尝试执行以下查询时:
UPDATE Security.Users SET firstName = 'RYANTEST' WHERE id = '1'
虽然Security.Users表上有一个锁定,但我的php脚本永远挂起(到目前为止,我测量的最长时间约为11分钟)。
这不应该返回错误或至少超时吗?
我试过在mysql上设置interactive_timeout和waiting_timeout没有运气。我也试过将php脚本设置为3秒后超时,再次没有运气(直接在脚本中使用set_time_limit())。
我不确定我还能尝试什么。
答案 0 :(得分:0)
不,这是正常行为。如果某个表被锁定,那么还需要锁定表的所有其他请求将等待轮到他们,直到上一次锁定被释放。
这是为了确保竞争环境中的数据完整性。
答案 1 :(得分:0)
看看这篇SO帖子,它描述了如何为mysql长时间运行的查询设置超时