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 :

gestion des requetes MySQL, priorités , etc [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre éprouvé Avatar de sebhm
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2004
    Messages
    1 090
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 090
    Points : 1 241
    Points
    1 241
    Par défaut gestion des requetes MySQL, priorités , etc
    Bonjour,

    j'ai une page PHP (page1) qui contient beaucoup de petites requetes (il peut y en avoir plus de 1000). Elle est donc assez longue à s'afficher.

    si je souhaite accéder à une autre page (page2) en meme temps que le chargement de page1, c'est KO.
    Parce que le serveur (qui est le coupable ? Apache ou MySQL, je ne sais pas) ne traite mes requetes SQL de page2 que quand il en a terminé avec page1.

    page1 se présente ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $mysql_link=connexion('localhost','root','','mabase');  //connexion MySQL
     
    requete 1
    requete 2
    ...
    requete N
     
    mysql_close($mysql_link); //déconnexion
    j'ai voulu voir si page2 avait une chance d'être prise en compte dans un délai correct si je ferme mes connexions SQL et que je les ouvre avant chaque requete dans page1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $mysql_link=connexion('localhost','root','','mabase');  //connexion MySQL
    requete 1
    mysql_close($mysql_link); //déconnexion
     
    $mysql_link=connexion('localhost','root','','mabase');  //connexion MySQL
    requete 2
    mysql_close($mysql_link); //déconnexion
     
    ...
     
    $mysql_link=connexion('localhost','root','','mabase');  //connexion MySQLrequete N
    mysql_close($mysql_link); //déconnexion
    et bien pas vraiment.
    Si je regarde mon log MySQL, je vois que page2 a été prise en compte plus tot, juste apres qu'une connexion de page1 ait été fermée, mais page1 a réussi à garder la main ensuite malgré les fermetures/ouvertures de connexion.

    Quelqu'un peut-il m'expliquer la gestion des requetes entrantes par MySQL ?
    Qui est le fautif? Le serveur Apache ou Le serveur MySQL ?
    Comment page2 peut-elle être chargée ? Est-il possible de définir des priorités ?
    ...

    merci

    PS : bien sur, si j'augmente le temps max de chargement de page2 avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ini_set('max_execution_time', 3600); //Maximum execution time of each script, in seconds
    alors page2 va se charger correctement une fois que page1 sera chargée, mais ce n'est pas ce que je souhaite

  2. #2
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2004
    Messages
    304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 304
    Points : 405
    Points
    405
    Par défaut
    Une piste serait d'utiliser la fonction sleep de PHP
    Manuel PHP
    S'il n'y a pas de Solution, c'est qu'il n'y a pas de Problème.
    ----------------------------------------------------------------------------------------
    Pour se protéger, un bon préservatif pour votre PC : AntiVir et SpyBot - Search & Destroy

  3. #3
    Membre chevronné Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Points : 1 895
    Points
    1 895
    Par défaut
    Citation Envoyé par zehle Voir le message
    Une piste serait d'utiliser la fonction sleep de PHP
    Manuel PHP
    oui il y a ça et si ça ne change pas, regarde aussi la fonction http://php.net/session_write_close si tu utilises des sessions
    GNAP !

  4. #4
    Membre éprouvé Avatar de sebhm
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2004
    Messages
    1 090
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 090
    Points : 1 241
    Points
    1 241
    Par défaut


    Nickel !!

    la fonction session_write_close est formidable.
    Je pensais pas qu'une session ouverte pouvait empecher une autre page de l'utiliser.
    Merci beaucoup.

    Je poursuis mes tests mais le 1er était vraiment payant !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Gestion des requetes
    Par r1cain dans le forum WebDev
    Réponses: 1
    Dernier message: 18/06/2008, 23h43
  2. gestion des erreurs mysql
    Par sefir dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 12/12/2007, 13h23
  3. Gestion des requetes de type select en mode déconnecté
    Par ninsekh dans le forum Windows Forms
    Réponses: 4
    Dernier message: 23/10/2007, 20h56
  4. Problème pour écrire des requetes mysql complexes
    Par truemistress dans le forum Requêtes
    Réponses: 8
    Dernier message: 08/02/2007, 18h29
  5. Réponses: 3
    Dernier message: 19/01/2006, 08h37

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