[SQL]Comment optimiser cette requete?
Bonjour,
J'ai une requête qui s'exécute en beaucoup trop de temps:
J'ai une table "contacts" qui se présente comme ceci:
cid | uid1 | uid2
1 | 1 | 2
2 | 2 | 1
3 | 3 | 1
4 | 1 | 3
uid1 et uid2 sont les uid des utilisateurs.
Dans la liste des contacts de 1 il y a 2 et 3
Dans la liste des contacts de 3 il y a 1
Dans la liste des contacts de 2 il y a 1
etc..
Avec ma requête je voudrais avoir "Les contacts de mes conacts"
Pour cela je lance cette requête (dans ce cas je suis l'uid 1):
Code:
1 2 3 4 5 6 7 8 9
|
SELECT DISTINCT(uid2)
FROM friends
WHERE uid1
IN(
SELECT uid2 FROM friends WHERE uid1='1'
)
AND uid2!='1'
ORDER BY uid2 DESC |
Seulement la requête met 4s en local et 1,5 seconde sur le serveur de production... Et la table est très petite (1500 entrées)...
Comment pourrais-je optimiser cette requête?
Merci par avance de vos réponses