그래서 2 천만 행이 포함 된 테이블 bj10dcmegablast가 있습니다. 이제 쿼리를 수행하고 싶습니다.MySQL 실행 시간
select *, max(qEnd - qStart)
from
(select qFileID,qLocus,qTranscript,qLength,sFileId,sLocus,sTranscript,
sLength,qStart,qEnd,sStart,sEnd
from bj10dcmegablast
where (qLocus, qTranscript)
in
(select distinct qLocus, qTranscript
from
(select qLocus, qTranscript, count(distinct sFileID) as counts
from bj10dcmegablast
group by qLocus, qTranscript
having counts > 6) as middle1)) as middle2
group by qLocus,sLocus;
얼마나 오래 걸릴지는 모르겠습니다. 한 시간 동안이 쿼리를 실행했습니다. 아직 끝나지 않았다.
이select qLocus, qTranscript, count(distinct sFileID) as counts
from bj10dcmegablast
group by qLocus, qTranscript
having counts > 6
이 40 초 정도 걸립니다 :
그래서 몇 가지 테스트를했다.
select distinct qLocus, qTranscript
from
(select qLocus, qTranscript, count(distinct sFileID) as counts
from bj10dcmegablast
group by qLocus, qTranscript
having counts > 6) as middle1;
이것은 2 분이 걸립니다.
누구나 전체 쿼리가 지속될 것이라고 생각할 수 있습니다.
MySQL 실행 계획을 살펴볼 수 있도록 EXPLAIN 문의 결과를 게시하십시오. – Namphibian