Salut tout le monde
Je vous explique mon probleme, j'ai 3 tables (forums, topics, membres): dans la table "forum" j'ai 2 forums, dans la table "topics" il y a 30002 messages, dans la table membres il y a 5 membres ..
Pour le premier forum, j'ai 2 topics, l'affichage est tres rapide, voici la requete:
Code :
- SELECT A.* B.mbr_pseudo AS auteur
- FROM topics AS A
- LEFT JOIN membres AS B ON ( A.topic_auteur = B.mbr_id )
- WHERE (
- A.topic_forumid = 1
- )
- ORDER BY A.topic_important DESC , A.topic_lastpostdate DESC
- LIMIT 0 , 15
|
Maintenant, voici un EXPLAIN sur cette requête:
Code :
- A ref page_topics page_topics 2 const 1 Using where; Using filesort
- B ref PRIMARY PRIMARY 2 A.topic_auteur 1 Using index
|
Bon, je refais la même requête sur le 2e forum, qui lui contient 30000 messages, et voici le résultat :
Code :
- A range page_topics page_topics 2 NULL 29995 Using where; Using temporary; Using filesort
- B index PRIMARY PRIMARY 18 NULL 4 Using index
|
Mon index de la table "topics" est multicolonne (topic_forumid;topic_auteur) et celui de la table "membres" est multicolonne (mbr_id;mbr_pseudo)
Voilà, le probleme est assez embetant, car mon forum de 2 messages est super optimisé et celui de 30 messages rame à fond. Ca fait plusieurs jours que j'essaye de trouver pourquoi il me fait ca et je n'obtiens aucun résultat
En esperant que vous pourrez m'aider ![:??: :??:](https://forum-images.hardware.fr/icones/confused.gif)
---------------
Hey! You wanna dance?