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 : Sélectionner tout - Visualiser dans une fenêtre à part
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