[MySQL] Optimisation requête SELECT
Bonjour tout le monde !
Je me tourne vers vous car une requête select me pose problème : elle prend trop de temps à s'exécuter.
Mon modèle relationnel ressemble à ça :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
TABLE_1
{
TABLE_1_ID (Primary key)
TABLE_2_ID (Foreign key)
....
}
TABLE_2
{
TABLE_2_ID (Primary Key)
TABLE_1_ID (Foreign Key)
....
} |
Pour un enregistrement dans la TABLE_1, je peux avoir plusieurs lignes dans TABLE_2 qui référencent cet enregistrement.
Mon but, c'est de retrouver tous les enregistrements de la TABLE_2 qui ne sont PAS référencés dans TABLE_1.
J'ai donc essayé ceci :
Code:
1 2 3
|
SELECT mes champs FROM TABLE_2 WHERE TABLE_2_ID NOT IN
(SELECT TABLE_2_ID FROM TABLE_1) |
et aussi, sachant que les sous requêtes sont à éviter :
Code:
1 2 3
|
SELECT mes champs FROM TABLE_2
INNER JOIN TABLE_1 ON TABLE_1.TABLE_2_ID <> TABLE_2.TABLE_2_ID |
Ces 2 requêtes renvoit les bons résultats, mais elles ne sont pas très rapides (de l'ordre de 3-4 secondes avec 10k lignes sur TABLE_2 et 100 sur TABLE_1 à peu prés)
Si vous avez une meilleure technique, n'hésitez pas, merci ;)