Donc, j'ai une table bj10dcmegablast avec 20 millions de lignes. Maintenant, je veux faire une requête en tant queMySQL temps de fonctionnement
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;
Je n'ai aucune idée de combien de temps cela va prendre. J'ai couru cette requête pendant une heure. Pas encore fini.
Je l'ai fait quelques tests:
select qLocus, qTranscript, count(distinct sFileID) as counts
from bj10dcmegablast
group by qLocus, qTranscript
having counts > 6
Cela prend 40 secondes.
select distinct qLocus, qTranscript
from
(select qLocus, qTranscript, count(distinct sFileID) as counts
from bj10dcmegablast
group by qLocus, qTranscript
having counts > 6) as middle1;
Celui-ci prend 2 minutes.
Tout le monde peut dire combien de temps durera la requête complète?
Affichez les résultats de l'instruction EXPLAIN pour voir le plan d'exécution MySQL. – Namphibian