Appréciation du bon nombre de requetes mysql ...
17 messages
• Page 1 sur 2 • 1, 2
-

Zecat - WRInaute accro

- Messages: 11990
- Inscription: 1 Mar 2005
Appréciation du bon nombre de requetes mysql ...
Comme c'est mon premier site avec Mysql, je manque un peu de points de repère sur le bon ou mauvais usage des requêtes mysql sur chaque page ... J'ai donc mis en place un petit compteur (mis a 0 en init session donc en tout debut de page) et avec +1 a chaque requête mysql executée.
Le verdict sur les pages les plus importantes :
Page home du site : 6 (+ 1 optionnelle)
Page home du forum (liste des forums) : 5 (+ 1 optionnelle)
Page liste des topics : 2 (+ 1 optionnelle)
Page liste des messages : 3 (+ 1 optionnelle)
J'ai traqué tout ce que j'ai pu en travaillant au maximum en "array processing" mais là je dois pas être loin du mini (peut etre 1 requete a gratter sur chaque page home au mieux).
Ca vous inspire quoi ? Honnête ou 6 et 5 c'est trop ?
Note : le +1 optionnelle c'est une requete liée au suivi de "qui est en ligne" et elle est optionnelle parce que déclenchée avec un temps de latence de 15 s pour alléger ... En gros, je signale l'arrivée d'un nouveau visteur immediatement à la bdd mais je ne confirme à la bdd la présence d'un visiteur que toutes les 15 secondes (même si il affiche 4 pages durant ces 15 secondes).
Le verdict sur les pages les plus importantes :
Page home du site : 6 (+ 1 optionnelle)
Page home du forum (liste des forums) : 5 (+ 1 optionnelle)
Page liste des topics : 2 (+ 1 optionnelle)
Page liste des messages : 3 (+ 1 optionnelle)
J'ai traqué tout ce que j'ai pu en travaillant au maximum en "array processing" mais là je dois pas être loin du mini (peut etre 1 requete a gratter sur chaque page home au mieux).
Ca vous inspire quoi ? Honnête ou 6 et 5 c'est trop ?
Note : le +1 optionnelle c'est une requete liée au suivi de "qui est en ligne" et elle est optionnelle parce que déclenchée avec un temps de latence de 15 s pour alléger ... En gros, je signale l'arrivée d'un nouveau visteur immediatement à la bdd mais je ne confirme à la bdd la présence d'un visiteur que toutes les 15 secondes (même si il affiche 4 pages durant ces 15 secondes).
-

YoyoS - WRInaute accro

- Messages: 3834
- Inscription: 14 Sep 2006
Re: Appréciation du bon nombre de requetes mysql ...
Oublie pas que certaines requêtes ne seront exécutées qu'une fois tous les X temps car tu peux créer un cache à la première exécution puis n'afficher que le cache partout !
cf : le topic de fandecine qui est pas mal pour débuter
. Sinon le nombre de requêtes est bon, après faut voir la complexité et rapidité d'execution. Si tu peux augmenter le nombre de requête et diminuer la charge c'est mieux ^^. Nombreux sont les cas où une grosse requête avec table temporaire et tout le brol est bien moins efficace que 2 requêtes (+le reste en php)!
Fais aussi des benchmarks en + du nombre de requêtes par page,tu affiches le temps total que ta page a mis pour être générée (et pas affichée) histoire de comparer.
cf : le topic de fandecine qui est pas mal pour débuter
Fais aussi des benchmarks en + du nombre de requêtes par page,tu affiches le temps total que ta page a mis pour être générée (et pas affichée) histoire de comparer.
-

Zecat - WRInaute accro

- Messages: 11990
- Inscription: 1 Mar 2005
Re: Appréciation du bon nombre de requetes mysql ...
1 - La on parle de page pas en cache bien sur ...
2 - Ce ne sont que des requetes ultra simples (un champ = une valeur) ou (un champs timestamp > une valeur) et qui retournent à chaque fois un seul champs "datas". Aucun truc lourd style jointure etc etc. Bon je vais coller un microtimedeb et fin pour mesurer aussi le temps ...
3 - sur la différence entre une grosse et n petites, c'est deja fait et j'ai comparé entre :
- 6 petites requetes (champs = aaabbb) puis (champs = aaaccc) etc etc et
- une seul (champ = aaa%) et derriere un foreach et switch pour eclater dans 6 tableaux
et c'est la seconde formule qui gagne dans mon cas. Pas mesuré unitairement mais constaté sur la mesure globale de la page.
2 - Ce ne sont que des requetes ultra simples (un champ = une valeur) ou (un champs timestamp > une valeur) et qui retournent à chaque fois un seul champs "datas". Aucun truc lourd style jointure etc etc. Bon je vais coller un microtimedeb et fin pour mesurer aussi le temps ...
3 - sur la différence entre une grosse et n petites, c'est deja fait et j'ai comparé entre :
- 6 petites requetes (champs = aaabbb) puis (champs = aaaccc) etc etc et
- une seul (champ = aaa%) et derriere un foreach et switch pour eclater dans 6 tableaux
et c'est la seconde formule qui gagne dans mon cas. Pas mesuré unitairement mais constaté sur la mesure globale de la page.
-

Zecat - WRInaute accro

- Messages: 11990
- Inscription: 1 Mar 2005
Re: Appréciation du bon nombre de requetes mysql ...
Bon finalement j'ai gratouillé un peu et réussi a regrouper des trucs et ca donne :
Page home du site : 4
Page home du forum (liste des forums) : 3 (*)
Page liste des topics : 2
Page liste des messages : 3
Plus la +1 optionnelle. Là je crois que je suis au max coté grattage
(*)
Une requete pour chopper la liste des forums
Une requete pour chopper la liste des derniers topics
Une requete pour chopper les stats du bloc "qui est en ligne"
Page home du site : 4
Page home du forum (liste des forums) : 3 (*)
Page liste des topics : 2
Page liste des messages : 3
Plus la +1 optionnelle. Là je crois que je suis au max coté grattage
(*)
Une requete pour chopper la liste des forums
Une requete pour chopper la liste des derniers topics
Une requete pour chopper les stats du bloc "qui est en ligne"
-

e-kiwi - Modérateur

- Messages: 15617
- Inscription: 23 Déc 2003
Re: Appréciation du bon nombre de requetes mysql ...
à terme, il ne doit y avoir aucune requête en partie publique. seule une requête déférée en ajax peut compter les hits. tout le reste doit être généré. le site doit s'afficher sans erreur, même en cas de BDD hors service.
avant d'y arriver, il faut juste que le site tienne et soit fluide. dès que cela ralenti, il faut mettre en cache petit à petit. mais pas de nombre précis (une requête peut prendre 0.001s comme 10s)
avant d'y arriver, il faut juste que le site tienne et soit fluide. dès que cela ralenti, il faut mettre en cache petit à petit. mais pas de nombre précis (une requête peut prendre 0.001s comme 10s)
-

Zecat - WRInaute accro

- Messages: 11990
- Inscription: 1 Mar 2005
Re: Appréciation du bon nombre de requetes mysql ...
OUi oui maintenant que coté nombre je suis au plancher, je vais aller coller des micro time pour mesurer le temps précis pris par les requetes ... histoire d'y voir bien clair et effectivement ensuite la gestion du cache (ne serait ce que pour être solide meme si bdd out un moment).
-

Zecat - WRInaute accro

- Messages: 11990
- Inscription: 1 Mar 2005
Re: Appréciation du bon nombre de requetes mysql ...
Petite question à 10 balles kiwi ...
Pour un forum, la mise en cache ne devrait concerner que les visiteurs non membres (et les bots) puisque si visiteurs inscrits, chacun a une visibilité spécifique en fonction de ses préférences d'une part mais aussi de ses autorisations (par exemple des boutons de gestion qui varient par définition comme le bouton editer d'un topic etc) ?
Donc ca limite sérieusement l'aspect "ok meme si bdd out" ou j'ai sauté une marche ?
Pour un forum, la mise en cache ne devrait concerner que les visiteurs non membres (et les bots) puisque si visiteurs inscrits, chacun a une visibilité spécifique en fonction de ses préférences d'une part mais aussi de ses autorisations (par exemple des boutons de gestion qui varient par définition comme le bouton editer d'un topic etc) ?
Donc ca limite sérieusement l'aspect "ok meme si bdd out" ou j'ai sauté une marche ?
-

Zecat - WRInaute accro

- Messages: 11990
- Inscription: 1 Mar 2005
Re: Appréciation du bon nombre de requetes mysql ...
jcaron a écrit:Le point important c'est surtout que toutes tes requêtes soient correctement optimisées (i.e. utilisent un index adapté).
Jacques.
index adapaté ?
- Index je vois
- C'est le "adapté" ou je pige pas ce que tu veux dire ...
Mon cas classique c'est :
cle : alpha 6 indexé
datas : texte
et ma recherche c'est cle like "toto". Bref du basique de chez basique. Dans d'autres cas, la cle sera un timestamp mais sinon ensuite idem.
Dernière édition par Zecat le Mar Mai 10, 2011 12:00, édité 1 fois.
-

Zecat - WRInaute accro

- Messages: 11990
- Inscription: 1 Mar 2005
Re: Appréciation du bon nombre de requetes mysql ...
finstreet a écrit:Y'a toujours la possibilité de bloquer l'accès membre pendant que la base de données a sauté
Nous sommes d'accord ...
-

finstreet - WRInaute accro

- Messages: 16999
- Inscription: 10 Juil 2005
Re: Appréciation du bon nombre de requetes mysql ...
pour le index adapté, c'est que l'index n'est pas forcément que sur le numéro d'id mais surtout sur les champs où sont faits les recherches. Si tu cherches par nombre de posts par exemple, indexer le champ : Nombre de posts sera plus utile que d'indexer l'id unique de chaque membre. Exemple.
17 messages
• Page 1 sur 2 • 1, 2
Lectures recommandées sur ce thème :
- [PHP] : compter le nombre de requêtes MySQL
- Appréciation du nombre de passage/visiteur par Google
- Optimisation requetes MySQL
- Mysql optimisation index/requêtes.
- Requêtes MySQL programmées à XXhXX
- Nombre de requêtes important
- Proble Base Mysql et requetes
- Limiter nombre requetes
- Réduire le nombre de requêtes sql
- [PHP/MySQL] Optimisation multiples requêtes
Consultez la description détaillée des produits ou services de Google suivants : Google Site Stats
- Liste des backlinks
Cet outil vous permet d'analyser en détails la "popularité" de votre site sur Google. En plus du nombre de liens pris en compte par Google, il calcule le pourcentage de liens internes parmi tous les liens, et il affiche les premières URL trouvées. - Calculer l'indice de densité
Cet outil vous permet de calculer l'indice de densité d'un mot-clé d'une page web. Il est calculé à la fois pour la balise TITLE, la balise META description et l'ensemble du texte de la page.
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité
