2013-06-23 1 views
0

나는 내결함성과 복제를 시도하고 있으며, 누가 기본 mysql 테이블을 사용하여 오랫동안 실행중인 쿼리를 알고 있는가?테스트를위한 긴 쿼리

아이디어는 해당 쿼리를 실행하여 mysqld를 크래시하여 내 앱이 오류를 감지하고 다른 mysqld에 연결을 시도하는지 확인하는 것이다.

감사합니다.

답변

0

심지어 가장 긴 쿼리로도 mysqld가 중단되지 않습니다! 사용중인 드라이버에 따라 연결이 끊어 질 수도 있지만 서버가 실행되어 실행되고 완료 될 때까지 실행됩니다. 장기 실행 쿼리는 표준 테이블과 관련이 없습니다. 내 경험에 따르면, 매우 큰 (10 억분의 수십만 개의 행을 서버의 spedd/ram에 따라 바꾼다) 인덱스를 변경하면 꽤 오랫동안 바쁠 것입니다.

+0

OP가 쿼리가 mysqld를 크래킹하기를 바라지 않는다고 생각합니다. 나는 s/he가 그것을 따로하고 싶어한다고 생각한다. 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을 반환합니다.