j'ai un problème avec mes requêtes SQL, elles sont trop longues, presque 2 sec pour récupérer 3 enregistrement.
je dispose de +200 000 lignes dans ma base de donnée.
Voici un exemple de requête :
SELECT uploads.id, name, image_small, description, SUM( download ) download, uploads.view, hoster, id_user, login, qualite, language, SUM( size ) size, streaming, links.date
FROM movies
LEFT JOIN uploads ON movies.id_upload = uploads.id
LEFT JOIN links ON uploads.id = links.id_upload
LEFT JOIN qualites ON links.id = qualites.id_link
LEFT JOIN languages ON links.id = languages.id_link
LEFT JOIN streamings ON links.id = streamings.id_link
LEFT JOIN users ON links.id_user = users.id
LEFT JOIN hosters ON links.id_hoster = hosters.id
GROUP BY qualite, language, movies.id, id_user
ORDER BY id DESC LIMIT 3
Si des personnes savent comment optimiser ce genre de requête lorsque l'on dispose de beaucoup de données
Merci à vous !
Il faudrait savoir combien de fois chaque jointure multiplie le nombre de lignes de résultat qui passent ensuite dans le group by...
On dirait une grosse requête à tout faire, avec un GROUP BY foireux, chose qui fonctionne rarement, mais impossible d'en dire plus sans avoir plus d'infos. Et avec les noms des colonnes en bordel, impossible de deviner.
Tu pourrais toujours essayer de mettre le LIMIT ailleurs :
SELECT uploads.id, name, image_small, description, SUM( download ) download, uploads.view, hoster, id_user, login, qualite, language, SUM( size ) size, streaming, links.date
FROM (SELECT * FROM movies ORDER BY id DESC LIMIT 3) movies
LEFT JOIN uploads ON movies.id_upload = uploads.id
LEFT JOIN links ON uploads.id = links.id_upload
LEFT JOIN qualites ON links.id = qualites.id_link
LEFT JOIN languages ON links.id = languages.id_link
LEFT JOIN streamings ON links.id = streamings.id_link
LEFT JOIN users ON links.id_user = users.id
LEFT JOIN hosters ON links.id_hoster = hosters.id
GROUP BY qualite, language, movies.id, id_user
ORDER BY id DESC
Optimisation requête sql
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Tutoriel complet MySQL !