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 :
Et la voici après :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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.''
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...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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.'
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
Partager