Problème avec les tables d'un forum :( - Programmation
Marsh Posté le 23-07-2002 à 12:10:17
RELAX Sky a écrit a écrit : ha bin oui, un SELECT COUNT(*) FROM topics c fatal fait un count(index_des_topics) |
Ce serait pour la page d'affichage des topics ou dans le newtopic.php ?
Marsh Posté le 23-07-2002 à 12:12:47
Ben sur la page d'affichage des topics, je fe :
SELECT * FROM topics WHERE ... ORDER BY ... LIMIT 40
Avec ca, il doit parser les 450 000 enregistrements, et ensuite faire le limit
C ca qui fait tout ramer
Marsh Posté le 23-07-2002 à 12:14:58
soit tu boucles de 1 à n, soit tu stockes le nombre de table dans la table forum.
//ps : edité, voila c mieux je dormais encore
$i=0;
do {
$query= "select count(id) AS nbenr from Topic".$i;
$i++;
}
while ($row['nbenr']<1000)
//insertion dans topic.$i
ou bien
$query= "select nom, description, nbtable from Forum where id=$forumAAfficher";
//insertion dans topic.$nbtable
Marsh Posté le 23-07-2002 à 12:19:53
RELAX Sky a écrit a écrit : t'a pa d'index ? |
Si si, sur l'id du topic
Marsh Posté le 23-07-2002 à 12:20:03
ReplyMarsh Posté le 23-07-2002 à 12:22:07
le plus simple est sans doute de stocker le nombre de table dans la table forum
sinon tu devras faire autant de requête que tu as de table topic, et avec 450.000 enregs ça te fait 450 query ce qui à mon avis te prendras plus de temps que de faire une query de 450.000enr
Marsh Posté le 23-07-2002 à 12:24:44
il est chouette ton forum
je voulais poster dessus, mais j'ai pas réussi (erreur due à ta transformation actuelle)
Marsh Posté le 23-07-2002 à 12:28:16
ethernal a écrit a écrit : il est chouette ton forum je voulais poster dessus, mais j'ai pas réussi (erreur due à ta transformation actuelle) |
Merchi bien
Vi pour le moment, il est un peu cassé
Donc, tu suggeres que je stocke le nb de table dans une autre table, ou pk pas ds un fichier .txt ?
Marsh Posté le 23-07-2002 à 12:32:28
e-sky ?
le tien tu sais bien que je l'adore
je n'ai pas encore eu l'occasion de tester à fond la version 2, mais elle est bien rapide.
c possible que la version PHP 4.2.2 soit plus lente ??
Marsh Posté le 23-07-2002 à 12:33:28
Max Evans a écrit a écrit : Donc, tu suggeres que je stocke le nb de table dans une autre table, ou pk pas ds un fichier .txt ? |
oui pq pas
Marsh Posté le 23-07-2002 à 12:36:14
ethernal a écrit a écrit : oui pq pas |
Oki, je v tester
Marsh Posté le 23-07-2002 à 13:50:07
ReplyMarsh Posté le 23-07-2002 à 13:53:35
J'ai lu ...
J'ai pas trouvé de truc en rapport avec le pb
V relire une 2° au cas ou
Marsh Posté le 23-07-2002 à 13:54:42
ReplyMarsh Posté le 24-07-2002 à 16:49:22
Sky >> Je viens de tester :
La requete est un SELECT ... ... ... ORDER BY dateheure DESC avec jointure qui portent sur deux tables ...
Pour afficher 100 000 topics ; au moins 1.2s
J'ai donc enlevé le ORDER BY dateheure DESC, et la POUF, temps d'execution : 0.023s !!!!!!
Pourtant, il y a bien un index qui porte sur le champ dateheure, c vraiment bizzare
Personne n'as pas une idee ?
Marsh Posté le 24-07-2002 à 18:13:01
Max Evans a écrit a écrit : Je suis en train de faire un forum |
Non tu déconnes
Marsh Posté le 24-07-2002 à 18:17:53
Reply
Marsh Posté le 23-07-2002 à 12:04:19
Salut a tous
Je suis en train de faire un forum, et je m'attaque a un problème assez corriace
J'ai inséré 450 000 topics pour tester la rapidité de l'affichage sur la page des topics ...
J'ai pas ete decu, ca mets plus de 4s pour s'afficher
On m'a parlé de couper les tables ...
Je m'explique :
Tous les 1000 topics, on créé une nouvelle table (topics_1, topics_2, etc)
Tu coup, plus de pb de vitesse puisque ke MySQL ne doit plus parser les 450 000 enregistrements, mais plus que 1000 !
J'ai donc essayé, mais vraiment ji arrive pas ...
Sur la page pour poster un nouveau topic, il faudrait que je compte le nombre d'enregistrements sur la derniere table des topics ...
Mais justement !!
Voila la requete :
SELECT COUNT(*) FROM topics
Sauf que s'il y a par exemple 2250 topics, il faut que le COUNT(*) soit fait sur la table topics2 !!
Du coup, comment connaitre la derniere table ?
Je vous remercie enormement
---------------
Envie d'un bol d'air ? Traxxas Revo 3.3