[optimisation] mysql connect close

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par pierre_jean, 26 Décembre 2007.

  1. pierre_jean
    pierre_jean WRInaute occasionnel
    Inscrit:
    6 Avril 2005
    Messages:
    296
    J'aime reçus:
    0
    Bonjour,

    Suite à la lecture de l'article optimiser mysql, que faut-il mieux faire si dans une page j'ai plusieurs requêtes sql avec traitement php derrière ?

    Code:
    connect bdd
    requete 1
    traitement php 1
    requere 2
    traitement php 2
    close bdd
    
    ou se connecter et se déconnecter à chaque fois, pour libérer la connection ouverte ?


    Code:
    connect bdd
    requete 1
    close bdd
    traitement php 1
    
    connect bdd
    requere 2
    close bdd
    traitement php 2
    
    Merci et bonne journée
     
  2. medium69
    medium69 WRInaute passionné
    Inscrit:
    7 Mai 2005
    Messages:
    1 940
    J'aime reçus:
    3
    Au risque de dire une connerie, je serais tenté de dire que tu fermes la connections dès que tu n'a plus l'utilité.
     
  3. pierre_jean
    pierre_jean WRInaute occasionnel
    Inscrit:
    6 Avril 2005
    Messages:
    296
    J'aime reçus:
    0
    J'ai risqué également en posant la question :wink: c'est ce que j'aurais tenté de faire aussi ... est-ce une bonne pratique ?
     
  4. petit-ourson
    petit-ourson WRInaute impliqué
    Inscrit:
    31 Mai 2004
    Messages:
    680
    J'aime reçus:
    0
    Tout dépend également ton temps de "traitement php 1" ? S'il dure longtemps il est sans doute préférable de fermer ta connexion, sinon c'est peut être pas nécessaire.

    Ne peux-tu pas faire :

    connect bdd
    requete 1
    requere 2
    close bdd

    traitement php 1
    traitement php 2
     
  5. FloBaoti
    FloBaoti WRInaute impliqué
    Inscrit:
    30 Avril 2006
    Messages:
    640
    J'aime reçus:
    0
    +1 pour petit-ourson :wink:

    Si le temps entre les 2 requêtes est faible, fermer et réouvrir la connexion va surcharger le serveur pour rien.
    En revanche, s'il y a plusieurs secondes entre les 2, et d'autres scripts qui tournent en parallèle, il vaut mieux fermer et réouvrir.
     
  6. pierre_jean
    pierre_jean WRInaute occasionnel
    Inscrit:
    6 Avril 2005
    Messages:
    296
    J'aime reçus:
    0
    Effectivement ça semble encore mieux !

    Alors comme le suggère petit-ourson (brun ou pas :wink: ) le plus optimisé serait :

    Code:
    connect bdd
    requete 1
    requere 2
    close bdd
    
    traitement php 1
    traitement php 2
    
    mettre toutes les requêtes en début de script et faire tous les traitements php après avoir fermé la connexion mysql ?
     
  7. anthomicro
    anthomicro WRInaute discret
    Inscrit:
    3 Avril 2004
    Messages:
    157
    J'aime reçus:
    0
    Salut,

    Merci d'avoir cité mon article :p

    Sinon en fait comme l'a très bien dit petit-ourson, ça dépend de pas mal de choses.

    Le mieux est de faire ceci :

    connexion
    - requete
    - requete
    - requete [...]
    déconnexion

    seulement il peut arriver qu'il faille pour faire certaines requêtes, avoir besoin du traitement d'autres requêtes. Ca dépend de ce temps justement. Si ton temps de traitement est élevé, fermes la connexion puis rouvre-la ensuite (tout en sachant qu'ouvrir une connexion demande des ressources processeur importantes), sinon il vaut mieux faire toutes tes requêtes directement puis fermer la connexion ensuite ;)
     
  8. jcaron
    jcaron WRInaute accro
    Inscrit:
    13 Février 2004
    Messages:
    2 579
    J'aime reçus:
    0
    Ca manque un peu de contexte (hébergement mutualisé ou dédié, tout ça), mais en général, on se débrouille pour garder les connexions aux bases de données ouvertes, au point qu'il est courant de garder la même connexion d'une requête http à l'autre (connexions persistantes). Fermer et rouvrir une connexion à chaque requête c'est un joli gâchis, sauf si on est limité en nombre de connexions, ou qu'on utilise plusieurs bases de données différentes.

    Bref, sans contexte, difficile de se prononcer.

    Jacques.
     
  9. pierre_jean
    pierre_jean WRInaute occasionnel
    Inscrit:
    6 Avril 2005
    Messages:
    296
    J'aime reçus:
    0
    Effectivement vous avez raison, le site est sur un dédié.
     
  10. anthomicro
    anthomicro WRInaute discret
    Inscrit:
    3 Avril 2004
    Messages:
    157
    J'aime reçus:
    0
    En même temps dédié ou mutu même combat, le but est d'avoir un code optimisé ;)
     
Chargement...
Similar Threads - [optimisation] mysql connect Forum Date
Mysql : Impact convertion champ numérique SMALLINT vers BIGINT Développement d'un site Web ou d'une appli mobile 23 Août 2021
Quel SGBDR autre que MySQL/MariaDB ? Administration d'un site Web 12 Janvier 2021
encodage texte sur requete mysql Demandes d'avis et de conseils sur vos sites 21 Octobre 2020
Requête MySql imbriquée Développement d'un site Web ou d'une appli mobile 8 Octobre 2020
Supprimer les doublons d'une table mysql Développement d'un site Web ou d'une appli mobile 16 Juin 2020
Mysql migration utf8->utf8mb4 Développement d'un site Web ou d'une appli mobile 17 Août 2019
recherche lettres dans mysql Développement d'un site Web ou d'une appli mobile 11 Juillet 2019
cache mysql maison Développement d'un site Web ou d'une appli mobile 18 Février 2019
Stocker dans des variables php les fonctions MySql Développement d'un site Web ou d'une appli mobile 2 Février 2019
message : [LEGACY][libmysqlclient] Please consider moving to stable and mysqlnd in Administration d'un site Web 8 Novembre 2018
Connexion à un serveur mysql distant Développement d'un site Web ou d'une appli mobile 21 Octobre 2018
Mysql, modifier des chaines avec différents caractères Administration d'un site Web 13 Septembre 2018
Fusionner deux champs sur la même table et même base de donnée Mysql Administration d'un site Web 12 Septembre 2018
Requête Mysql avec des string Développement d'un site Web ou d'une appli mobile 6 Février 2018
Surveiller les connexions à la base de données MySQL Développement d'un site Web ou d'une appli mobile 1 Février 2018
PHP : script pour mettre catalogue xml clickbank dans mysql Développement d'un site Web ou d'une appli mobile 6 Décembre 2017
Mise à jour MySql 5.1 vers 5.5 Administration d'un site Web 1 Juillet 2017
Problème avec un changement de version Mysql de 5.5 à 5.7 Développement d'un site Web ou d'une appli mobile 9 Juin 2017
Requete mysql Développement d'un site Web ou d'une appli mobile 30 Mai 2017
Problème requête mysql Développement d'un site Web ou d'une appli mobile 1 Mars 2017