Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1265 connectés 

  FORUM HardWare.fr
  Programmation

  Problème avec les tables d'un forum :(

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème avec les tables d'un forum :(

n°180577
Max Evans
Posté le 23-07-2002 à 12:04:19  profilanswer
 

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
mood
Publicité
Posté le 23-07-2002 à 12:04:19  profilanswer
 

n°180585
Max Evans
Posté le 23-07-2002 à 12:10:17  profilanswer
 

RELAX Sky a écrit a écrit :

ha bin oui, un SELECT COUNT(*) FROM topics  c fatal  :lol:  
 
fait un count(index_des_topics)
 
 :lol:  




 
Ce serait pour la page d'affichage des topics ou dans le newtopic.php ?


---------------
Envie d'un bol d'air ? Traxxas Revo 3.3
n°180593
Max Evans
Posté le 23-07-2002 à 12:12:47  profilanswer
 

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 :(


---------------
Envie d'un bol d'air ? Traxxas Revo 3.3
n°180595
ethernal
Chercheur de vérité...
Posté le 23-07-2002 à 12:14:58  profilanswer
 

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 :D
$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


Message édité par ethernal le 23-07-2002 à 12:23:05

---------------
...oups kernel error...
n°180600
Max Evans
Posté le 23-07-2002 à 12:19:53  profilanswer
 

RELAX Sky a écrit a écrit :

t'a pa d'index ?




 
Si si, sur l'id du topic :)


---------------
Envie d'un bol d'air ? Traxxas Revo 3.3
n°180602
Max Evans
Posté le 23-07-2002 à 12:20:03  profilanswer
 

Ethernal => Je matte ton code ;)


---------------
Envie d'un bol d'air ? Traxxas Revo 3.3
n°180605
ethernal
Chercheur de vérité...
Posté le 23-07-2002 à 12:22:07  profilanswer
 

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


---------------
...oups kernel error...
n°180610
ethernal
Chercheur de vérité...
Posté le 23-07-2002 à 12:24:44  profilanswer
 

il est chouette ton forum  :jap:  
je voulais poster dessus, mais j'ai pas réussi (erreur due à ta transformation actuelle)


---------------
...oups kernel error...
n°180616
Max Evans
Posté le 23-07-2002 à 12:28:16  profilanswer
 

ethernal a écrit a écrit :

il est chouette ton forum  :jap:  
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é :D
 
Donc, tu suggeres que je stocke le nb de table dans une autre table, ou pk pas ds un fichier .txt ? :)


---------------
Envie d'un bol d'air ? Traxxas Revo 3.3
n°180622
ethernal
Chercheur de vérité...
Posté le 23-07-2002 à 12:32:28  profilanswer
 

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 ??


---------------
...oups kernel error...
mood
Publicité
Posté le 23-07-2002 à 12:32:28  profilanswer
 

n°180625
ethernal
Chercheur de vérité...
Posté le 23-07-2002 à 12:33:28  profilanswer
 

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 :)


---------------
...oups kernel error...
n°180631
Max Evans
Posté le 23-07-2002 à 12:36:14  profilanswer
 

ethernal a écrit a écrit :

 
oui pq pas :)




 
Oki, je v tester :)


---------------
Envie d'un bol d'air ? Traxxas Revo 3.3
n°180700
Max Evans
Posté le 23-07-2002 à 13:50:07  profilanswer
 

V voir ma poule :)


---------------
Envie d'un bol d'air ? Traxxas Revo 3.3
n°180706
Max Evans
Posté le 23-07-2002 à 13:53:35  profilanswer
 

J'ai lu ...
J'ai pas trouvé de truc en rapport avec le pb :D
 
V relire une 2° au cas ou :D


---------------
Envie d'un bol d'air ? Traxxas Revo 3.3
n°180708
Max Evans
Posté le 23-07-2002 à 13:54:42  profilanswer
 

Nan, g tjs rien trouvé :??:


---------------
Envie d'un bol d'air ? Traxxas Revo 3.3
n°180733
ethernal
Chercheur de vérité...
Posté le 23-07-2002 à 14:19:55  profilanswer
 

:lol:


---------------
...oups kernel error...
n°181867
Max Evans
Posté le 24-07-2002 à 16:49:22  profilanswer
 

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 !!!!!! :love:
 
Pourtant, il y a bien un index qui porte sur le champ dateheure, c vraiment bizzare :(
 
Personne n'as pas une idee ? :)


---------------
Envie d'un bol d'air ? Traxxas Revo 3.3
n°181963
zion
Plop
Posté le 24-07-2002 à 18:13:01  profilanswer
 

Max Evans a écrit a écrit :

 
 
Je suis en train de faire un forum



 
 
Non tu déconnes  :??:    [:ddr555]


---------------
Informaticien.be - Lancez des défis à vos amis
n°181967
Max Evans
Posté le 24-07-2002 à 18:17:53  profilanswer
 

Zion a écrit a écrit :

 
 
 
Non tu déconnes  :??:    [:ddr555]  




 
 [:olimou]


---------------
Envie d'un bol d'air ? Traxxas Revo 3.3
n°181986
Max Evans
Posté le 24-07-2002 à 18:34:09  profilanswer
 
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  Problème avec les tables d'un forum :(

 

Sujets relatifs
[HTML,JS] ............Probleme avec page incluse........[ XPath ] problème de détection d'un attribut.
[ASP] Fonction 'replace', petit problemeProbleme d'impression
probleme création d'un " Container "..Problème de tableau : il se redimensionne tout seul !!!!
ptit probleme facile a resoudre[Forum gratuit] Autres que Aceboard ?
[delphi] probleme avec &Probleme , wraping ...
Plus de sujets relatifs à : Problème avec les tables d'un forum :(


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR