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 : 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.''
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
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