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

 


 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  284  285  286  ..  486  487  488  489  490  491
Auteur Sujet :

les développeurs de forums, les 3/4 des forums sont down /o\

n°1173261
Max Evans
Posté le 09-08-2005 à 14:48:01  profilanswer
 

Reprise du message précédent :
Oki doki :jap:
 
Essayes quand même le FOUND_ROWS ^^


---------------
Envie d'un bol d'air ? Traxxas Revo 3.3
mood
Publicité
Posté le 09-08-2005 à 14:48:01  profilanswer
 

n°1173267
drasche
Posté le 09-08-2005 à 14:58:38  profilanswer
 

Ben je veux bien mais rien que de faire la première requête prend 5x plus de temps que mon SELECT COUNT() :??:
 
Pour en revenir au problème initial, j'ai royalement 1 COUNT() dans la page d'index principale pour m'afficher le nombre d'utilisateurs inscrits. Tous les autres COUNT sont conditionnels et utilisés uniquement dans mes pages d'administration (et c'est souvent pas grand chose).
 
Le total de messages pour un topic est stocké dans la table des topics, de même que le nombre de topics dans une catégorie est stocké dans la table des catégories et... merde! Je viens de trouver une solution à un problème que j'ai [:yaisse2]
 
Bref, je m'embête pas à faire des count conditionnels partout :D


Message édité par drasche le 09-08-2005 à 14:59:00

---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°1173273
Max Evans
Posté le 09-08-2005 à 15:01:01  profilanswer
 

drasche a écrit :

Ben je veux bien mais rien que de faire la première requête prend 5x plus de temps que mon SELECT COUNT() :??:
 
Pour en revenir au problème initial, j'ai royalement 1 COUNT() dans la page d'index principale pour m'afficher le nombre d'utilisateurs inscrits. Tous les autres COUNT sont conditionnels et utilisés uniquement dans mes pages d'administration (et c'est souvent pas grand chose).
 
Le total de messages pour un topic est stocké dans la table des topics, de même que le nombre de topics dans une catégorie est stocké dans la table des catégories et... merde! Je viens de trouver une solution à un problème que j'ai [:yaisse2]
 
Bref, je m'embête pas à faire des count conditionnels partout :D


Pas partout, on est d'accord :D J'ai aussi des compteurs en dur, mais pour certaines choses, c'est plus facile de faire un calcul dynamique plutot que de chercher la valeur en dur ;)
 
Bon, quand est-ce que tu passes en multi-forums la :o :D


---------------
Envie d'un bol d'air ? Traxxas Revo 3.3
n°1173281
drasche
Posté le 09-08-2005 à 15:06:44  profilanswer
 

Max Evans a écrit :

Bon, quand est-ce que tu passes en multi-forums la :o :D


Figure-toi que le truc sur lequel je viens de tilter, si c'est faisable, pourrait m'ôter certaines craintes sur une adaptation multi-forums. Mais un tel boulot n'est pas à l'ordre du jour :o  Ma todolist a grossi un peu vite ces temps-ci :sweat: (et surtout, le forum n'est pas ma priorité pour le moment :D)


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°1173283
Max Evans
Posté le 09-08-2005 à 15:09:03  profilanswer
 

drasche a écrit :

Figure-toi que le truc sur lequel je viens de tilter, si c'est faisable, pourrait m'ôter certaines craintes sur une adaptation multi-forums. Mais un tel boulot n'est pas à l'ordre du jour :o  Ma todolist a grossi un peu vite ces temps-ci :sweat: (et surtout, le forum n'est pas ma priorité pour le moment :D)


 :whistle: Tu sais où me trouver :D


---------------
Envie d'un bol d'air ? Traxxas Revo 3.3
n°1173297
drasche
Posté le 09-08-2005 à 15:20:25  profilanswer
 

Max Evans a écrit :

:whistle: Tu sais où me trouver :D


Etude rapide sur le problème de Board 999 vs. multi-forums:
 

  • les fichiers de configuration devraient être transférés dans une table de configuration (avec un ID de forum pour identification);
  • les tables suivantes devraient contenir un ID de forum: sections, catégories, utilisateurs, hacks, log, classes, privilèges, templates (3 tables);
  • certaines tables névralgiques (catégories, sous-catégories, sanctions) sont régulièrement verrouillées, il faudrait presque faire un split par forum pour éviter qu'une table partagée soit verrouillée pour l'usage d'un seul forum;
  • les smilies (tous types) devraient être groupés par forum;


edit: et enfin une interface pour gérer le multi-forums lui-même, donc un admin zéro ou quelque chose dans le genre...
 
Bon à part ça, ça roule! :D
Non franchement, c'est pas demain que je vais m'y mettre :sweat:


Message édité par drasche le 09-08-2005 à 15:23:08

---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°1173334
e-deby
Posté le 09-08-2005 à 15:55:46  profilanswer
 

Max Evans a écrit :

Ca reste a voir ... Si t'as une table avec 1 000 000 de drapeaux, et que tu dois en piocher ne serait-ce qu'une centaine dedans, ton COUNT va ramer avec ta clause WHERE :(


 
 
non  :)


---------------
Pour les sudistes :)
n°1173339
Max Evans
Posté le 09-08-2005 à 15:59:24  profilanswer
 


Merci pour cette argumentation de folie :love:
 
J'ai quand même essayé, et le résultat était assez médiocre chez moi ... Maintenant peut-être que ce n'est pas la même chose chez tout le monde [:spamafote]


---------------
Envie d'un bol d'air ? Traxxas Revo 3.3
n°1173350
e-deby
Posté le 09-08-2005 à 16:09:51  profilanswer
 

ben des indexs bien placés et un FOUND_ROWS() suffisent à ressortir de facon performante tout ce dont tu as besoin


---------------
Pour les sudistes :)
n°1173352
Max Evans
Posté le 09-08-2005 à 16:10:52  profilanswer
 

e-deby a écrit :

ben des indexs bien placés et un FOUND_ROWS() suffisent à ressortir de facon performante tout ce dont tu as besoin


Heu, c'est bien ce que je dis aussi :??:


---------------
Envie d'un bol d'air ? Traxxas Revo 3.3
mood
Publicité
Posté le 09-08-2005 à 16:10:52  profilanswer
 

n°1173356
e-deby
Posté le 09-08-2005 à 16:12:44  profilanswer
 

ah autant pour moi alors, je pensais que tu disais que ca ne pouvait pas etre assez performant ;)


---------------
Pour les sudistes :)
n°1173369
The-Shadow
T'as été voir dans ton profil?
Posté le 09-08-2005 à 16:24:13  profilanswer
 

Cette discussion de sourd. :lol:
 

n°1173371
drasche
Posté le 09-08-2005 à 16:25:03  profilanswer
 

Bon, on va retourner dans la doc MySQL voir l'intérêt du FOUND_ROWS:
 
Extrait de http://www.nexen.net/docs/mysql/an [...] ctions.php
 

Citation :

Une commande SELECT  peut inclure une clause LIMIT  pour restreindre le nombre de lignes qui sera retournée par le client. Dans certains cas, il est mieux de savoir combien de lignes une commande aurait retourné, sans la clause LIMIT  , mais sans lancer à nouveau le calcul.


 
Donc en fait, vous détournez une fonction de son usage initial :D
 
Perso, je suis sûr de mon fait: vos indexes sont mal placés.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°1173372
drasche
Posté le 09-08-2005 à 16:27:18  profilanswer
 

En fait, en lisant un peu plus bas, je pense que vous devriez utiliser la clause SQL_CALC_FOUND_ROWS dans votre premier SELECT si vous voulez vraiment optimiser votre requête de comptage.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°1173377
Max Evans
Posté le 09-08-2005 à 16:28:13  profilanswer
 

drasche a écrit :

En fait, en lisant un peu plus bas, je pense que vous devriez utiliser la clause SQL_CALC_FOUND_ROWS dans votre premier SELECT si vous voulez vraiment optimiser votre requête de comptage.


Heu oué, je l'ai oublié ds ma requête, il se place avant le * par exemple ;)


---------------
Envie d'un bol d'air ? Traxxas Revo 3.3
n°1173380
The-Shadow
T'as été voir dans ton profil?
Posté le 09-08-2005 à 16:29:45  profilanswer
 

Dites, si c'est pas trop demandé Max, tu aurais un exemple de requête complet avec ta méthode de récupération ?

n°1173387
Max Evans
Posté le 09-08-2005 à 16:36:00  profilanswer
 

$query = mysql_query("SELECT SQL_CALC_FOUND_ROWS
         id, sticky, icone, titre, description2, auteur, reponse, vue, dernier_auteur, dernier_date, dernier_id_topic, ferme
  FROM topic
  WHERE id_cat=$_GET[cat]
  ORDER BY dernier_id_topic DESC
  LIMIT $debut,$nbpostspage" )
  or die("Erreur : ".__FILE__.":".__LINE__."<BR>".mysql_error());


       
 
$nbposts1 = mysql_query("SELECT FOUND_ROWS()" );  
$nbtopicpercat=mysql_result($nbposts1,0);
 
Donc, en plus de récupérer les enregistrements, je récupère très rapidement le nombre d'enregistrements TOTAL (Comme si la clause LIMIT n'était pas là) :)


Message édité par Max Evans le 09-08-2005 à 16:37:13

---------------
Envie d'un bol d'air ? Traxxas Revo 3.3
n°1173389
Max Evans
Posté le 09-08-2005 à 16:36:34  profilanswer
 

PS : J'ai oublié le mysql_fetch_array pour ressortir les enregistrements, mais il est là :D


---------------
Envie d'un bol d'air ? Traxxas Revo 3.3
n°1173403
The-Shadow
T'as été voir dans ton profil?
Posté le 09-08-2005 à 16:43:48  profilanswer
 

Merci. :jap:
 
Je vais me faire un p'tit binch de ta méthode et de la mienne qui est surement dépassée.

n°1173406
drasche
Posté le 09-08-2005 à 16:45:11  profilanswer
 

Max Evans a écrit :

Heu oué, je l'ai oublié ds ma requête, il se place avant le * par exemple ;)


Han! ce facteur est primordial évidemment! sans ça on peut toujours essayer de faire plus rapide qu'un COUNT :D  Bon là, les résultats sont beaucoup plus proches l'un de l'autre mais il n'y a pas de réel départage. Ce qui est bête, c'est que mon SELECT COUNT(*) prend l'avantage à cause du temps d'exécution du SELECT FOUND_ROWS() :D


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°1173409
The-Shadow
T'as été voir dans ton profil?
Posté le 09-08-2005 à 16:47:09  profilanswer
 

drasche => Si tu me détailles ta requête, je prendrais testerais également ta méthode en binch. :jap:
Je vous file mon binch et les résultats après bien sûr.

n°1173422
drasche
Posté le 09-08-2005 à 16:54:21  profilanswer
 

Je récapipète:
 

Code :
  1. SELECT SQL_NO_CACHE SQL_CALC_FOUND_ROWS fldmesgaidn FROM tblmesg_1 WHERE fldtopcaidn=13;
  2. SELECT FOUND_ROWS();


 
Et de l'autre:

Code :
  1. SELECT SQL_NO_CACHE COUNT(*) FROM tblmesg_1 WHERE fldtopcaidn=13;


 
Sachant que la table contient 9000+ records et que mon comptage doit rapporter le nombre 200 (200 enregistrements trouvés). Est-il besoin de mentionner que j'ai un index sur fldtopcaidn?
 
Bon, j'ai dit une boulette dans mon précédent post: le COUNT(*) explose toujours le FOUND_ROWS() suivant un ratio de 5 contre 1 (je m'étais gourré sur la seconde requête).


Message édité par drasche le 09-08-2005 à 16:55:10

---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°1173433
antp
Champion des excuses bidons
Posté le 09-08-2005 à 16:59:40  profilanswer
 

Mais dans les cas où on a besoin de faire le select avec un limit, le found_rows est quand même mieux que le count, non ? (genre afficher le contenu d'une page et en bas de page les liens page 1 - 2 - 3 - 4 etc. ?)
 
Actuellement j'utilise select + limit, puis un select count pour les liens des pages. Mais si je peux soulager le serveur c'est pas plus mal...


Message édité par antp le 09-08-2005 à 17:00:30

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°1173434
drasche
Posté le 09-08-2005 à 17:00:31  profilanswer
 

ben ici de ce que j'ai compris, il veut juste compter des enregistrements [:pingouino]
 
(ya même une fonction PHP qui fait ça)


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°1173439
antp
Champion des excuses bidons
Posté le 09-08-2005 à 17:02:25  profilanswer
 

Ouais mais moi ce que je me demandais c'était pour le cas où on doit quand même faire un select avec limit...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°1173451
drasche
Posté le 09-08-2005 à 17:08:01  profilanswer
 

Oui, c'est ce que j'ai cité avec la doc de MySQL ;)


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°1173453
Max Evans
Posté le 09-08-2005 à 17:08:15  profilanswer
 

C'est très bien pour calculer le nombre de pages :) Ca me sert d'ailleurs à ça hein :D


---------------
Envie d'un bol d'air ? Traxxas Revo 3.3
n°1173455
Max Evans
Posté le 09-08-2005 à 17:09:50  profilanswer
 

drasche a écrit :

Je récapipète:
 

Code :
  1. SELECT SQL_NO_CACHE SQL_CALC_FOUND_ROWS fldmesgaidn FROM tblmesg_1 WHERE fldtopcaidn=13;
  2. SELECT FOUND_ROWS();


 
Et de l'autre:

Code :
  1. SELECT SQL_NO_CACHE COUNT(*) FROM tblmesg_1 WHERE fldtopcaidn=13;


 
Sachant que la table contient 9000+ records et que mon comptage doit rapporter le nombre 200 (200 enregistrements trouvés). Est-il besoin de mentionner que j'ai un index sur fldtopcaidn?
 
Bon, j'ai dit une boulette dans mon précédent post: le COUNT(*) explose toujours le FOUND_ROWS() suivant un ratio de 5 contre 1 (je m'étais gourré sur la seconde requête).


 
Chelou, avec un peu plus de 500 000 enregistrements,un FOUND_ROWS me retourne 0.0002s [:mlc]


---------------
Envie d'un bol d'air ? Traxxas Revo 3.3
n°1173458
drasche
Posté le 09-08-2005 à 17:15:11  profilanswer
 

Max Evans a écrit :

Chelou, avec un peu plus de 500 000 enregistrements,un FOUND_ROWS me retourne 0.0002s [:mlc]


ben on teste pas avec la même machine aussi :o J'ai qu'un veau moi ici :o
si je retrouve une DB assez grosse ce soir, je refais un test :o


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°1173459
drasche
Posté le 09-08-2005 à 17:15:48  profilanswer
 

Max Evans a écrit :

C'est très bien pour calculer le nombre de pages :) Ca me sert d'ailleurs à ça hein :D


ben moi je fais un select pour récupérer le nombre de topics dans le row de la catégorie correspondante :D


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°1173460
Max Evans
Posté le 09-08-2005 à 17:15:50  profilanswer
 

drasche a écrit :

ben on teste pas avec la même machine aussi :o J'ai qu'un veau moi ici :o
si je retrouve une DB assez grosse ce soir, je refais un test :o


Tested à partir d'un sempron 2200, 256 Mo de RAM :D


---------------
Envie d'un bol d'air ? Traxxas Revo 3.3
n°1173461
Max Evans
Posté le 09-08-2005 à 17:16:51  profilanswer
 

drasche a écrit :

ben moi je fais un select pour récupérer le nombre de topics dans le row de la catégorie correspondante :D


Ouais mais je te vois mal gérer des cat entière de "Sujets Consultés" / "Sujets Participés" ... Cmt tu fais pour savoir combien il y en a par user et par cat ? :D


---------------
Envie d'un bol d'air ? Traxxas Revo 3.3
n°1173465
drasche
Posté le 09-08-2005 à 17:19:59  profilanswer
 

Max Evans a écrit :

Ouais mais je te vois mal gérer des cat entière de "Sujets Consultés" / "Sujets Participés" ... Cmt tu fais pour savoir combien il y en a par user et par cat ? :D


Ca m'intéresse pas ce genre d'infos :D


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°1173467
The-Shadow
T'as été voir dans ton profil?
Posté le 09-08-2005 à 17:23:46  profilanswer
 

J'ai un résultat bizarre pour le moment en benchant, j'inclu la méthode de drasche et je vous donne ma méthode de calcul (pour que vous puissiez tester sur vos ordis) et mes résultats.

n°1173469
Max Evans
Posté le 09-08-2005 à 17:23:54  profilanswer
 

Bah c'est plutot pas mal de pouvoir regrouper tous ses flags sur une même page :D


---------------
Envie d'un bol d'air ? Traxxas Revo 3.3
n°1173470
The-Shadow
T'as été voir dans ton profil?
Posté le 09-08-2005 à 17:26:41  profilanswer
 

Drasche => Comment tu récupères le résultat du count ?  
Pour faire exactement comme toi.

n°1173471
cinocks
Posté le 09-08-2005 à 17:28:06  profilanswer
 

Max Evans a écrit :

Chelou, avec un peu plus de 500 000 enregistrements,un FOUND_ROWS me retourne 0.0002s [:mlc]


 
Tu calcules comment le 0.0002s. De mon coté j'ai essayé. J'ai aussi 0.0005, mais ca correspond FOUND_ROWS et ne prend pas en compte le temps d'execution de la premiere requete.


---------------
MZP est de retour
n°1173481
Max Evans
Posté le 09-08-2005 à 17:36:01  profilanswer
 

cinocks a écrit :

Tu calcules comment le 0.0002s. De mon coté j'ai essayé. J'ai aussi 0.0005, mais ca correspond FOUND_ROWS et ne prend pas en compte le temps d'execution de la premiere requete.


Pour ça, j'ai simplement utilisé PHPMYADMIN :)


---------------
Envie d'un bol d'air ? Traxxas Revo 3.3
n°1173485
cinocks
Posté le 09-08-2005 à 17:42:10  profilanswer
 

Max Evans a écrit :

Pour ça, j'ai simplement utilisé PHPMYADMIN :)


 
 
Moi aussi, le probleme est qu'il ne donne que le temps de la derniere requete. En prenant requete par requete, c'est bcp plus long.


---------------
MZP est de retour
n°1173487
Max Evans
Posté le 09-08-2005 à 17:43:31  profilanswer
 

T'es sûr de ça ? :??:
Le fait est que j'ai gagné 0.5s sur une page grace à ca :D


---------------
Envie d'un bol d'air ? Traxxas Revo 3.3
n°1173501
Limit
Posté le 09-08-2005 à 17:57:53  profilanswer
 

Max Evans a écrit :

T'es sûr de ça ? :??:
Le fait est que j'ai gagné 0.5s sur une page grace à ca :D


Pourquoi tu as besoin de ca alors qu'en page index tu affiches le nombre de sujets dans chaque forum?

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  284  285  286  ..  486  487  488  489  490  491

Aller à :
Ajouter une réponse
 

Sujets relatifs
question avec les forums phpbb2[php] trouver la premier place ou inserer un enregistrement (résolu)
Forums phpBBQui connait l'algo du Passticket et sa mise en place en VB ?
[Merise] Mise en place d'un MCDFocus mal placé....
[Blabla/Prog] Les développeurs foromeurs sont-ils des feignasses?Mise en place d'un formulaire CGI
forums création de site internetJava - Mise en place d'une api (Servlet)
Plus de sujets relatifs à : les développeurs de forums, les 3/4 des forums sont down /o\


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)