0

我正在尝试一些容错和应用程序,有没有人知道使用默认 mysql 表的长时间执行查询?

想法是运行该查询,使 mysqld 崩溃以查看我的应用程序是否检测到错误并尝试连接到另一个 mysqld。

谢谢

4

3 回答 3

0

SLEEP()功能可能会对您有所帮助。10 秒后SELECT SLEEP(10);返回。0

于 2013-06-24T01:30:00.607 回答
0

即使是最长的查询也不会导致 mysqld 崩溃!您可能会失去连接,具体取决于您使用的驱动程序,但我相信服务器将运行并运行并运行直到完成。使用标准表将很难进行长时间运行的查询。以我的经验,更改非常大的索引(10 的 ir 更好的 100 的数百万行,具体取决于服务器的速度/内存)将使其忙碌一段时间

于 2013-06-23T18:04:15.023 回答
0

只需执行多个交叉连接并保存到表中:

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-23T18:09:23.733 回答