我正在尝试一些容错和应用程序,有没有人知道使用默认mysql表的长时间执行查询?
我们的想法是运行该查询,使mysqld崩溃,看看我的应用程序是否检测到错误并尝试连接到另一个mysqld。
谢谢
发布于 2013-06-24 02:04:15
即使是最长的查询也不会使mysqld崩溃!您可能会断开连接,这取决于您使用的驱动程序,但我相信服务器会一直运行,一直运行到完成为止。而长时间运行的查询将很难用标准表来处理。
发布于 2013-06-24 02:09:24
只需执行多个交叉连接并保存到表中:
create table dum as
    select *
    from information_schema.tables t cross join
         information_schema.tables t cross join
         information_schema.tables t cross join
         information_schema.tables t cross join
         information_schema.tables t cross join
         information_schema.tables t cross join
         information_schema.tables t cross join
         information_schema.tables t;或者,如果你不想创建一个表,可能是这样的:
    select count(*)
    from information_schema.tables t cross join
         information_schema.tables t cross join
         information_schema.tables t cross join
         information_schema.tables t cross join
         information_schema.tables t cross join
         information_schema.tables t cross join
         information_schema.tables t cross join
         information_schema.tables t;我刚刚意识到--我不知道information_schema.tables在新的安装中是否真的有行。最糟糕的情况是将如下内容组合在一起:
select count(*)
from (select 1 as n union all select 2 as n union all select 3 as n union all select 4 as n) n1 cross join
     (select 1 as n union all select 2 as n union all select 3 as n union all select 4 as n) n2 cross join
     (select 1 as n union all select 2 as n union all select 3 as n union all select 4 as n) n3 cross join
     (select 1 as n union all select 2 as n union all select 3 as n union all select 4 as n) n4 cross join
     (select 1 as n union all select 2 as n union all select 3 as n union all select 4 as n) n5 cross join
     (select 1 as n union all select 2 as n union all select 3 as n union all select 4 as n) n6 cross join
     (select 1 as n union all select 2 as n union all select 3 as n union all select 4 as n) n7 cross join
     (select 1 as n union all select 2 as n union all select 3 as n union all select 4 as n) n8 cross join
     (select 1 as n union all select 2 as n union all select 3 as n union all select 4 as n) n9;顺便说一下,这是一个有趣的问题。我生命中的大部分时间都致力于让查询运行得更快,以至于思考相反的问题是一件很有趣的事情。
发布于 2013-06-24 09:30:01
SLEEP()函数可能会对您有所帮助。SELECT SLEEP(10);在10秒后返回0。
https://stackoverflow.com/questions/17263614
复制相似问题