begin process at 2010 02 10 13:05:34
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

Bases de données

 > 

Temps de réponse et temps d'affichage


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Temps de réponse et temps d'affichage

mardi 28 mars 2006 à 12:17:32 | Temps de réponse et temps d'affichage

Tartuffe

Salut tous..

Une question pour un pro sur une problématique de temps de réponse + temps d'accès en PHP + Mysql...

Voici le problème :
- J'ai 2 tables : une avec des ID (t1) et une avec des LIBELLE (t2)
- J'ai 2 fonctions : une qui traite l'accès aux ID (f1), l'autre l'accès aux LIBELLE (f2)
- J'ai 2 pages php : une qui contient les fonctions (p1) et une qui contient mes traitements (p2)
- l'ouverture de la connexion à la BdD est faite au préalable, la fermeture à la fin des traitements

Question : laquelle de ces 2 solutions est la plus rapide à l'affichage (je ne parle pas de pertinence ! )
1/
Dans P2 je fais....
    i. appele F1
    ii. traitement de F1 dans une boucle ; appelle F2 + affichage des résultats

2/
Dans P2 je fais...
    i. appele F1
Dans F1 de P1 je fais...
    ii. appele F2
Dans P2 je fais...
    iii. traitement de F1 dans une boucle ; affichage des résultats


Bonne question, n'est-ce pas [: - )

PekLandais
mardi 28 mars 2006 à 12:30:10 | Re : Temps de réponse et temps d'affichage

malalam

Administrateur CodeS-SourceS
Hello,

pourquoi tu ne benches pas les 2 solutions...??
Ceci dit je n'ai pas tout compris : on ne sait pas quels sont tes traitements, ni rien.
Le plus rapide, c'est aussi fonction du code, et de la structure des tables.

Bref comme ça, à vue de nez, sans plus d'infos, la solution 1 sera probablement la plus rapide.

Mais vraiment, il y a trop peu d'infos.
mardi 28 mars 2006 à 12:47:21 | Re : Temps de réponse et temps d'affichage

Tartuffe

... en recentrant la question : il vaut mieux faire une chaine de fonctions ou une boucle de fonction ?
Mais cela a t'il un impact significatif en terme de temps de réponse ?

Soit dans le cas ci-dessus :
- F1 avec un résultat partiel, puis appel unitaire à F2 à chaque résultat de F1
vs
- F1 qui fait un appel unitaire à F2 et renvoie un résultat complet, puis traitement de F1


Maintenant, en élargissant la question, car c'était là le fond de ma pensée :
Vaut-il mieux faire une requête complète (avec jointures) qui retourne le résultat final, ou un enchainement de requête simple avec PHP qui boucle pour reconstituer le résultat final.

Le rapide en terme de temps de réponse, c'est PHP ou MySQL ?
"En théorie", qui des 2 doit travailler le plus afin d'améliorer le temps de réponse ?



PekLandais
mardi 28 mars 2006 à 13:07:02 | Re : Temps de réponse et temps d'affichage

malalam

Administrateur CodeS-SourceS
Réponse acceptée !
- une boucle de fonctions je pense
- une requête OPTIMISEE, donc à voir au niveau des jointures
- ça dépend du traitement...
mardi 28 mars 2006 à 14:34:42 | Re : Temps de réponse et temps d'affichage

huberdine

Ce qui est certain, c'est qu'un appele à la base de données (MySql) est couteux, en temps, et en ressources.
L'idéal, c'est d'en faire le maximum en php et d'optimier au maximum tes requêtes MySql avec des jointures afin de n'aller chercher dans la BDD que ce dont tu a besoin.

D'un autre côté, à moins d'avoir des traitements longs (sur plusieurs centaintes d'enregistrements), le temps de traitement Php/MySql sera beaucoup plus court que l'acheminement des données du serveur au navigateur du client.

-*- switch -*-
mardi 28 mars 2006 à 14:45:16 | Re : Temps de réponse et temps d'affichage

malalam

Administrateur CodeS-SourceS
Je ne suis pas certain que, par exemple, créer un libelle particulier à partir de plusieurs champs, avec une expression régulière, un concat ou autre, soit plus long à effectuer directement dans la requête, plutôt que d'aller chercher les champs normalement, et de traiter l'info ensuite via php.
J'ai même de sérieux doutes ;-)
Maintenant, tout est question d'optimisation et du genre de traitement, comme je le disais : ça dépend du traitement.
Convertir une date, par exemple, autant le faire niveau SQL directement. COALESCE est sans doute (je n'ai jamais testé hein mais...j'ai dans l'idée que...) plus rapide que de récupérer le nom du champ et de faire le remplacement voulu en php.
Personnellement, sur un projet actuel, j'ai un traitement de moins de 2 secondes sur 2700 requêtes SELECT avec traitements divers (coalesce justement notamment), sur une base relativement légère il est vrai (les tables ne dépassent pas les 2300 enregistrements). Je suis passé de 7 secondes à moins de 2 en descendant simplement certaines infos, afin de limiter les jointures.
Bref...tout est à tester...et à optimiser. Pour arriver à ce résultat, j'ai benché à tout va!
mardi 28 mars 2006 à 15:10:47 | Re : Temps de réponse et temps d'affichage

huberdine

J'abonde évidemment dans ce sens là : il vaut mieux une requête SQL un peu complexe
que 1 requête SQL, un traitement puis une seconde requête SQL.
C'est pour celà qu'il faut en faire le maximum en php dans le but de limiter tes requêtes.
Ton approche du code sera différente si tu fais des requêtes à tout bout de champ ou si au contraire tu essaye de faire le moins de requêtes possibles.

-*- switch -*-
mardi 28 mars 2006 à 19:37:06 | Re : Temps de réponse et temps d'affichage

Anthomicro

Salut,

en général vaut mieux une seule requête que plusieurs, mais y'a des exceptions... il y a très longtemps j'ai divisé mon temps de génération par deux en augmentant le nombre de requêtes par trois... (bon depuis j'ai tout divisé encore en supprimant les requêtes inutiles suite à un changement d'architecture mais bon...)

C'est pour dire que c'est tellement variable qu'il n'y a pas de réponse valable à ton post, tout au plus pouvons-nous faire des généralités sur les cas les plus probables... bref il ne te reste plus qu'à tester.

a +



    Cette discussion est classée dans : réponse, p2, temps, affichage, f1


    Répondre à ce message

    Sujets en rapport avec ce message

    Temps d'affichage d'une page [ par Indy ] Bon bon, après deux jours passés à comprendre le fonctionnement de php3 et de mysql (site chez Free.fr), toutes les infos voulues sont enfin bien envo affichage avant de changer de page [ par marco1981 ] Bonjour a tous, je fais un genre de questionaire en php, j'ais mes questions et mes réponse dans un base de donnée, j'affiche question par question, m tirage aléatoire et affichage pour un temps donnée [ par titeuf974 ] Bonjour!Voila. J'ai une requète qui extrait une infomation aléatoire d'une base données pour l'afficher sur une page. Cela marche très bien. A chaque emploi du temp en php [ par koke_kaoutar ] salut tous le mondeje suis en traint de developper un application en php et l'un des menus c'est l'affichage de l'emploi du temps et j'ai ecrisle code Affichage d'un site pendant un temps limité [ par BigBiB ] Bonjour tout le monde,voila mon problème: j'ai un annuaire gratuit et je voudrais ajouter (comme le booster sur les freeglobe) un système avec lequel Affichage du nombre de membres inscrits en temps réel [ par cmaelc ] Bonjour, j'ai besoin pour mon site un script PHP permettant d'afficher le nombre de membres déja inscrit sur la page d'accueil de mon site grace à ma Transmission HTTP [ par mentral ] Bonjour,Lorsque le navigateur envoie une requête pour l'affichage d'une page, quel est le temps moyen de chacune des actions nécessaires à l'affichage affichage requete SQL [ par darkwisk ] Bonjour à tous,Voilà mon problème : j'ai une requete qui me renvoi ça :Paul : 2Pierre : 7Jacques : 0Voilà mon code :$res = mysql_query("SELECT * FROM Redirection apres affichage [ par Renus02 ] Bonjour a tous,J'ai un soucis au niveau d'un affichage, l'un de mes formulaires me redirige sur une page, sur cette page j'affiche un template (smarty Pour le petit con de 195.93.32.162 [ par Nix ] Sache qu'un mail à été envoyé à ton ISP (AOL) pour ce que tu as fait sur le forum et le site.C'est pas comme ça que tu obtiendras un réponse à tes que


    Nos sponsors


    Sondage...

    Comparez les prix

    CalendriCode

    Février 2010
    LMMJVSD
    1234567
    891011121314
    15161718192021
    22232425262728

    Consulter la suite du CalendriCode

     
    Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
    CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
    CodeS-SourceS.com© est une marque déposée tous droits réservés

    Google Coop CodeS-SourceS Google Coop CodeS-SourceS
    Temps d'éxécution de la page : 6,084 sec (4)

    Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales