IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Optimisation temps de réponse requête


Sujet :

PHP & Base de données

  1. #1
    Membre actif
    Inscrit en
    Novembre 2007
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 50
    Par défaut Optimisation temps de réponse requête
    Bonjour, je travail sur un Intranet avec des sites distants qui s'y connectent. Ils n'ont pas toujours de très bonnes bandes passantes, du coup j'essaye d'optimiser mon code et surtout mes requêtes.

    Par exemple, comment faire si j'affiche dans beaucoup de pages une liste de clients pour pas devoir trimballer le résultat d'une même requête sur le réseau à chaque affichage de la page ?

    PHP et MySQL ou SQL Server sont optimisés et le font tout seul ? Je pense pas non ? Comment puis-je faire pour optimiser ça ? Stocker mes requêtes récurrentes avec des cookies ?

    Si vous avez des pistes merci d'avance.


    P.S : Tant que j'y suis si qq'un à une piste pour un contôle ajax qui permet de faire des combos avec recherche sur code ou intitulé.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    PHP et MySQL ou SQL Server ne sont pas concernés par ton problème puisqu'ils travaillent en amont de ton lien defaillant.

    Il n'y a que la quantité d'information que tu affiches qui est importante.

    En utilisant Ajax, tu peux éviter de faire un rafraichissement complet de la page.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre actif
    Inscrit en
    Novembre 2007
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 50
    Par défaut
    Je sais pas si on s'est bien compris.
    En effet ma requête est exécutée sur le serveur, mais ce qui me fait peur c'est de renvoyer plusieurs fois le résultat vers le poste client.

    Si je fait un lourd SELECT * FROM nimporte qui renvoie 100.000 lignes, j'aimerais éviter de le renvoyer chaque fois que je veux afficher une liste de mes nimporte, j'aimerais récupérer le résultat de la requête et le garder quelque part en local pour pas avoir à le rapatrier chaque fois.

    Je sais pas si c'est des choses qui se pratiquent ou pas ou si MySQL est optimisé pour le faire tout seul. J'espère que j'ai été clair, c'est pas facile à expliquer.

  4. #4
    Membre actif
    Inscrit en
    Novembre 2007
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 50
    Par défaut
    J'ai pensé plusieurs choses, mais aucune me conviens :

    1 - Garder le résultat de ma lourde requête dans une variable session ?
    Mais la session étant stockée d'après moi sur le serveur je décharge pas le trafic en faisant ça et surcharge inutilement le serveur

    2 - Garder le résultat de ma lourde requête dans un cookies ?
    Mais je sais pas si c'est efficace et y a le risque que le poste client n'accepte pas les cookies...

    3 - J'espère trouver la solution miracle !!!

  5. #5
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Citation Envoyé par jesusnavas Voir le message
    Non personne n'a été confronté à ce problème ? Pas de petite idée...
    Par principe on ne fait pas de SELECT * FROM X qui rapatrie la totalité de la table.

    Si par exemple tu veux afficher tes 100 000 utilisateurs , tu feras une pagination , et tu ne chargera les utilisateur que par lot de 25 par exemple.

    Y'a pas de réel solution actuellement pour faire du cache coté client. Mais en même temps tu ne transfert souvent que tu texte brut d'une bdd , c'est donc plutôt léger comparer au images et au script que ta page pourrais contenir.

    Cependant est tu bien sur que c'est le volume de données qui pose problème et pas des requêtes complexes associé à des structures de tables innapropriées ?
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre actif
    Inscrit en
    Novembre 2007
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 50
    Par défaut
    Déjà, merci de ta réponse.

    Non, les requêtes ne sont pas exigeantes, pas de soucis de ce côté là.
    En fait je fait pas un SELECT * FROM matable, je fait un SELECT cli_code, cli_nom FROM client, mais comme j'affiche une liste de mes clients à beaucoup d'endroits, je la récupère chaque fois.

    Bref, je vais faire comme tu dis, je vais plutôt imposer à l'utilisateur de saisir une partie du nom ou du code client pour pas rapatrier toute ma table et filtrer en amont. Disons que ramener une fois la table m'aurait bien plu, mais si rien est prévu pour ce genre de chose je vais utiliser ce paliatif grâce à Ajax.

    Encore merci pour ta piste.

Discussions similaires

  1. Optimiser temps de réponse sans PK
    Par rednight dans le forum Requêtes
    Réponses: 6
    Dernier message: 21/05/2010, 11h29
  2. Réponses: 6
    Dernier message: 11/03/2009, 12h26
  3. optimisation temps de réponse
    Par mohcultiv dans le forum ASP
    Réponses: 20
    Dernier message: 08/06/2007, 19h01
  4. Comment optimiser les temps de réponse d'une requête ?
    Par renaudjuif dans le forum Requêtes
    Réponses: 3
    Dernier message: 19/02/2007, 15h12
  5. Ressources, temps de réponse, requète ...
    Par _____M_____ dans le forum Administration
    Réponses: 16
    Dernier message: 31/03/2004, 17h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo