Voici ma requête
375 entrées (traitement: 0.4401 sec)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT * FROM fungi2 WHERE sequence REGEXP 'CACATTG.*GTCGCA' AND organism NOT IN (SELECT DISTINCT(organism) FROM fungi2_consensus WHERE linking_consensus LIKE 'Alternaria_alternata') AND organism NOT LIKE 'Alternaria alternata'
Par contre pour (ou seul 'SELECT DISTINCT(organism)' ne change)
Cela ne fonctionne plus, MySQL tourne pendant plusieurs minutes et puis affiche un écran blanc.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT DISTINCT(organism) FROM fungi2 WHERE sequence REGEXP 'CACATTG.*GTCGCA' AND organism NOT IN (SELECT DISTINCT(organism) FROM fungi2_consensus WHERE linking_consensus LIKE 'Alternaria_alternata') AND organism NOT LIKE 'Alternaria alternata'
Peut-être pourrais-je optimiser mes requêtes.
Fungi2_consensus est une sous-tables provenant de Fungi2 et possède la même PK id liées entre elles par une FK.
J'ai également un index sur le champ Fungi2.organism
Au lieu de faire un SELECT DISTINCT(organism) FROM fungi2_consensus WHERE linking_consensus like 'Alternaria_alternata' serait-il préférable de travailler sur la liste complète des id? Mais, cela allongerait la liste du NOT IN. A moins que je ne crée des index dans la table Fungi_consensus sur les champs organism et linking_consensus.
J'ai aussi essayé de remplacer le LIKE de linking_consensus LIKE 'Alternaria_alternata' par un = mais j'obtiens un résultat différent!
Merci pour vos conseilles.
Partager