2013-06-23 34 views
0

我在嘗試一些容錯和應用程序,並沒有人知道使用默認的MySQL表長執行查詢?長查詢測試

想法是運行該查詢,崩潰mysqld以查看我的應用程序是否檢測到錯誤並嘗試連接到另一個mysqld。

謝謝

回答

0

即使最長的查詢也不會崩潰mysqld!您可能會失去連接,具體取決於您使用的驅動程序,但我相信服務器將運行並運行並運行直至完成。 長時間運行的查詢將很難處理標準表。根據我的經驗,將索引更改爲非常大(根據服務器的spedd/ram,10更好),將使其保持繁忙狀態

+0

我不認爲OP希望查詢崩潰mysqld。我認爲他/他想分開做。 OP只是想確保查詢正在運行。 –

+0

在這種情況下,「這個想法是運行該查詢,崩潰mysqld以查看我的應用程序是否檢測到錯誤並嘗試連接到另一個mysqld。」有點混亂:)。無論如何,其他答案可能比我做得更好 –

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; 

順便說一下,這是一個有趣的問題。我的很多時間都致力於讓查詢更快地運行,認爲相反的問題是有趣的。

0

SLEEP()函數可能會對您有所幫助。 SELECT SLEEP(10);在10秒後返回0