Aide pour Simplifier/optimiser une requête SQL
Bonjour,
Mon développeur ne maîtrisant pas totalement SQL et ses subtilités, on aurait besoin d'un coup de pouce pour simplifier/optimiser la requete suivante :
Code:
1 2 3 4 5 6 7 8 9 10
| SELECT DISTINCT video_id, video_type, video_titre, video_description, video_idPartenaire, video_urlMini, video_dateValide, partenaire_valide, partenaire_redirection,
( SELECT COUNT(Y.v_appartient_c_idVideo) AS NbCorresp FROM lol_v_appartient_c Y
WHERE Y.v_appartient_c_idVideo=81 AND Y.v_appartient_c_idCategorie IN (SELECT Z.v_appartient_c_idCategorie FROM lol_v_appartient_c Z WHERE Z.v_appartient_c_idVideo=video_id)) as Compte,
( SELECT categorie_singulier FROM lol_categorie,lol_v_appartient_c X
WHERE X.v_appartient_c_idVideo=video_id AND X.v_appartient_c_default=1 AND categorie_id=X.v_appartient_c_idCategorie ) as categorie_singulier
FROM lol_categorie,lol_v_appartient_c A,lol_video LEFT JOIN lol_partenaire ON video_idPartenaire=partenaire_id
WHERE
(A.v_appartient_c_idCategorie IN (SELECT W.v_appartient_c_idCategorie FROM lol_v_appartient_c W WHERE W.v_appartient_c_idVideo=81) AND video_id=A.v_appartient_c_idVideo) AND
(video_idPartenaire=0 OR (partenaire_valide=1 AND partenaire_redirection<>1)) AND
video_valide=1 AND video_id<>81 AND video_langue='fr' ORDER BY Compte DESC LIMIT 0,14 |
Cette requête affiche les 14 premières vidéos ayant le plus de catégories similaires avec "les catégories" de la vidéo visionnée (dans notre exemple la vidéo 81)
La requête actuelle met 3.06 secondes pour s’exécuter en parcourant 2700 vidéos. On trouve cela un peu long d'ou notre demande sur ce poste. PS: le serveur est plutôt puissant
Je remercie d'avance l’âme charitable qui tentera de nous aider :)