Optimiser script ; jointures
Bonsoir à tous !
Je suis chargé de remettre à neuf un forum. Cependant, je ne suis pas un adepte de l'optimisation. :p C'est pourquoi je m'en remets à vous. ;)
Voici la requête avant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| SELECT forum_topics.stick,forum_topics.cat,
forum_topics.ferme,forum_topics.tid,forum_topics.titre,
forum_topics.date,forum_topics.auteur,forum_topics.auteur_id,
forum_topics.auteur_last,forum_topics.timelast,
count(forum_posts.id)
AS nbposts
FROM forum_topics, forum_posts
WHERE forum_topics.cat='.$_GET['id'].'
AND forum_topics.stick="0"
AND forum_posts.topic_id=forum_topics.tid
GROUP BY forum_topics.tid
ORDER BY forum_topics.timelast
DESC LIMIT '.$debut.','.$limite.'' |
Et la voici après :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
SELECT ft.stick,ft.cat,ft.ferme,
ft.tid,ft.titre,ft.date,
ft.auteur,ft.auteur_id,ft.auteur_last,
ft.timelast,
count(fp.id) AS nbposts
FROM forum_topics ft
INNER JOIN forum_posts fp
ON fp.topic_id = ft.tid
WHERE ft.cat='.$_GET['id'].'
AND ft.stick="0"
GROUP BY ft.tid
ORDER BY ft.timelast
DESC LIMIT '.$debut.','.$limite.' |
Cette requête liste les sujets de la table dans la catégorie donnée. La table des topics contient environ 26 000 enregistrements et celle des posts environ 302 500. D'où l'optimisation...
Voyez-vous quelque chose d'autre à rajouter / modifier dans la requête pour l'optimiser ? Je sèche. :)
Merci d'avance pour vos réponses.
Bonne soirée,
Guillaume