Optimiser 6 requêtes...

Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics


JeunZ
WRInaute accro
WRInaute accro
 
Messages: 5301
Inscription: Mer Fév 18, 2004 12:41

Optimiser 6 requêtes...

Message le Dim Avr 24, 2005 23:29

bonjour,

dans un fichier qui est appelé plusieurs milliers de fois par jour j'effectue ces 6 requetes (entre autre)

Code: Tout sélectionner
list($nbrt) = mysql_fetch_array(mysql_query("SELECT MAX(id) FROM membres", $db), MYSQL_NUM);
list($nbr3t) = mysql_fetch_array(mysql_query("SELECT MAX(post_id) FROM dotclear_post", $db), MYSQL_NUM);
list($nbr4t) = mysql_fetch_array(mysql_query("SELECT MAX(comment_id) FROM dotclear_comment", $db), MYSQL_NUM);

list($nbr) = mysql_fetch_array(mysql_query("SELECT count(id) FROM membres", $db), MYSQL_NUM);
list($nbr3) = mysql_fetch_array(mysql_query("SELECT count(post_id) FROM dotclear_post", $db), MYSQL_NUM);
list($nbr4) = mysql_fetch_array(mysql_query("SELECT count(comment_id) FROM dotclear_comment", $db), MYSQL_NUM);


les max(id) et count(id) de 3 tables en fait.

Vaut il mieux tout regrouper en une seule requete? Y a t'il une fonction spéciale qui renvoit ces valeur et d'une façon plus optimisée?

shrom
WRInaute passionné
WRInaute passionné
 
Messages: 865
Inscription: Lun Juil 05, 2004 22:37

Re: Optimiser 6 requetes...

Message le Dim Avr 24, 2005 23:50

JeunZ a écrit:
Code: Tout sélectionner
list($nbrt) = mysql_fetch_array(mysql_query("SELECT MAX(id) FROM membres", $db), MYSQL_NUM);
list($nbr3t) = mysql_fetch_array(mysql_query("SELECT MAX(post_id) FROM dotclear_post", $db), MYSQL_NUM);
list($nbr4t) = mysql_fetch_array(mysql_query("SELECT MAX(comment_id) FROM dotclear_comment", $db), MYSQL_NUM);

list($nbr) = mysql_fetch_array(mysql_query("SELECT count(id) FROM membres", $db), MYSQL_NUM);
list($nbr3) = mysql_fetch_array(mysql_query("SELECT count(post_id) FROM dotclear_post", $db), MYSQL_NUM);
list($nbr4) = mysql_fetch_array(mysql_query("SELECT count(comment_id) FROM dotclear_comment", $db), MYSQL_NUM);



Ce que je ferais, c'est écrire les valeurs dans un fichier texte qui seraient mis à jour lorsque nécessaire c'est à dire lorsqu'il y a un nouveau membre, un nouveau post ou un nouveau commentaire.


JeunZ
WRInaute accro
WRInaute accro
 
Messages: 5301
Inscription: Mer Fév 18, 2004 12:41

Message le Dim Avr 24, 2005 23:56

Ca serait chiant à coder car les blogs s'ouvrent et se ferment comme des petits pains, idem pour les parutions et les commentaires... La fonction count et max sont vraiment utile à ce niveau.

Mais je pense que regrouper mes 6 requetes en une seule permettraient de consommer moins de ressources non? Dans un premier temps en attendant effectivement de trouver un autre système que celui de la base de donnée...

shrom
WRInaute passionné
WRInaute passionné
 
Messages: 865
Inscription: Lun Juil 05, 2004 22:37

Message le Lun Avr 25, 2005 0:56

JeunZ a écrit:Ca serait chiant à coder car les blogs s'ouvrent et se ferment comme des petits pains, idem pour les parutions et les commentaires...


15 minutes pour coder tout ça, il suffit de mettre des hook aux endroits qui vont bien.


JeunZ
WRInaute accro
WRInaute accro
 
Messages: 5301
Inscription: Mer Fév 18, 2004 12:41

Message le Lun Avr 25, 2005 1:39

Je m'y colle demain merci ;-)

yep
WRInaute impliqué
WRInaute impliqué
 
Messages: 286
Inscription: Sam Avr 03, 2004 12:02

Message le Lun Avr 25, 2005 10:46

c'est quoi des 'hook' ?

shrom
WRInaute passionné
WRInaute passionné
 
Messages: 865
Inscription: Lun Juil 05, 2004 22:37

Message le Lun Avr 25, 2005 11:07

yep a écrit:c'est quoi des 'hook' ?


C'est des fonctions qui vont en appeler dautres ;-)

Plus sérieusement, c'est tout simplement placer une fonction à un endroit stratégique qui déclenche un événement.

Par exemple, après l'insertion d'un commentaire qui se fait par la méthode blog::addPost, on rajoute un appel à une fonction qui lève un événement du genre:
Code: Tout sélectionner
$GLOBALS['EVTMANAGER']->notify(ADDPOST, $post);


Dans la méthode notify, on appel tous les objets ou fonctions qui ont demandé à écouter cette événement. Ainsi on peut effectuer des actions à chaque fois qu'un post est ajouté.


Formation recommandée sur ce thème :

Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par Julien Coquet, expert certifié officiellement par Google Analytics.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités