我只是想知道如何改变全局超时时间以及如何测试它
我有一些我认为可以改变默认超时时间的查询,如;
SET GLOBAL max_execution_time = 4;
我想如果我设置max_execution_time = 4,如果我的查询将在5秒内执行,我会得到超时错误。我只是尝试了一些查询测试。我想知道我是否应用默认超时时间为4秒;
DO SLEEP(5);
SELECT SLEEP(5);
还发现了一个用于测试超时时间的查询,即;
WAITFOR DELAY (5);
但是没有工作(代码抛出错误)。
在我尝试了这些之后,我没有得到超时错误。我希望得到它。
你的问题是在mysql是SELECT SLEEP(5);
而sql是WAITFOR DELAY (5);
,这就是为什么它不工作。
SET GLOBAL max_execution_time = 4;
SELECT SLEEP(5);
例子:https://www.db-fiddle.com/f/3PnzHErrf2fZFGZY67K12X/440
首先,max_execution_time使用毫秒作为其基本单位,而sleep()
函数使用秒。此外,SET GLOBAL只影响全局作用域,不影响当前会话。如果您想要测试它,也可以为会话设置变量值。
set global max_execution_time = 4000;
set session max_execution_time = 4000;
select sleep(10);
最后一条语句将在4秒后结束。