gpt4 book ai didi

MySQL "LOCK TABLES"超时?

转载 作者:行者123 更新时间:2023-12-01 07:40:59 26 4
gpt4 key购买 nike

mysql LOCK TABLES 语句的超时时间是多少?

到处都找不到。

我尝试在 my.cnf 中设置变量 innodb_lock_wait_timeout,但它似乎与另一个(行级)锁定相关,而不是表锁定。

只是它对 LOCK TABLES 没有影响。

我想为死锁的情况设置一些较低的超时值,因为如果某些操作会锁定表并且出现问题,它会挂掉整个站点!

这很愚蠢,例如在您的网站上完成购买。

最佳答案

我的解决方法是创建一个专用的锁表并只锁定该表中的一行。这样做的好处是只锁定特别想要锁定的进程。应用程序的其他部分可以继续访问表,即使它们在某个时刻被更新过程触及。

设置

CREATE TABLE `mutex` (
EMPTY ENUM('') NOT NULL,
PRIMARY KEY (EMPTY)
);

用法

set innodb_lock_wait_timeout = 1;
start transaction;
insert into `mutex` values();

[... do the real work here ... or somewhere else ... even a different machine ...]

delete from `mutex`;
commit;

关于MySQL "LOCK TABLES"超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30075076/

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