Vous n'êtes pas connecté - 0 membre connecté
Catégories
Graphisme
Flash (49)
Print (64)
Programmation
PHP (64)
Base de données (17)
ASP (2)
CSS (24)
Hardware
PC (34)
Mac (14)
Linux (5)
Divers
Blabla (243)
886 Sujets
11904 Réponses
Programmation > Base de données > MySQL - Méthode de connexion ?
MySQL - Méthode de connexion ?
 Salut tout le monde !

Voila une question qui me turlupine depuis fort longtemps...
Est-il préférable au niveau performance serveur et rapidité d'ouvrir une seule connexion à la base en début de script ou d'ouvrir et de fermer une connexion à chaque appel de MySQL_Query() ?

Par exemple habituellement je passe mon identifiant de connexion en paramètre de mes fonctions :


<?
// Début de la page
$connexion MySQL_Connect("blabla");

// Mes fonctions
Function Machin($connexion)
{
    
$Res MySQL_Query("UN REQUETE",$connexion) Or Die(MySQL_Error());
    Return 
$Res
}

// Appels à mes fonctions + Traitement
$Res Machin($connexion);

// Fin de la page, fermeture de ma connexion
MySQL_Close($connexion);
?>

Mais ne devrais-je pas faire plutôt :

<?
Function Machin()
{
    
$connexion MySQL_Connect("blabla");
    
$Res MySQL_Query("UNE REQUETE",$connexion) Or Die(MySQL_Error());
    
MySQL_Close($connexion);
    Return 
$Res;
}

// Appels à mes fonctions + Traitement
$Res Machin();
?>
Ou encore devrais-je utiliser la fonction MySQL_Pconnect() ? mais là je marche sur des oeufs car il me semble que c'est risqué les connexions persistentes (risque d'atteindre la limite maximale de nombre de connexions simultanées autorisée par le serveur MySQL, ou encore risque de plomber le serveur en cas de boucle infinie)
Posté le 25 07 2006 à 17h20
benzor - Administrateur - www

Réponses - MySQL - Méthode de connexion ?
<< 1 2 3 >>
perso je dirais qu'ouvrir en début de script et fermer à la fin c'est l'idéale.
T'imagines si t'as un script avec plein de requête, fermer ouvrir fermer ouvrir, je me demande même si ça chargerait pas le server un peu plus.

Le mieux serait d'expérimenter... qui en a le courage? ^^

Par contre le pconnect bofbofbof
Posté le 25 07 2006 à 23h46
Pierrot - Membre
Je me pose exactement la même question...
Posté le 26 07 2006 à 00h22
Ishiro - Membre - www
ca m'interesse aussi !
actuellement j'ouvre et ferme la connection à chaque utilisation (donc elle peut avoir lieu plusieurs fois dans une meme page)
Posté le 26 07 2006 à 11h06
Erk - Membre - www
Au boulot on a une classe DB, avec plein de fonctions et de variables dedans, qu'on instancie en debut de script et qu'on déclare en $GLOBALS.
Une fois le script terminé on a des infos comme le nombre de requetes, temps moyen par requete, requete la plus rapide/longue etc qui sont contenues dans l'objet DB et on le détruit (ou pas car PHP le fait tout seul).
Si t'avais plusieurs instances de l'objet ca serait moins facilement gérable.

Vu qu'elle est en $GLOBALS on ne se fait pas chier à la passer en parametre de chaque fonction.
Posté le 26 07 2006 à 12h58
McFly - Membre - www
MacFly > intéressant, faudrait voir la tête de la fonction :)
Posté le 26 07 2006 à 13h11
benzor - Administrateur - www
Perso j'aurais tendance à privilégier l'ouverture en début de page et la fermeture en fin de page. Tout simplement parce que chaque nouvelle connexion c'est une liaison à un socket, que c'est couteux et que de toute façon l'objet est chargé en mémoire, ça ne sert à rien de le décharger pour l'y remettre 3 lignes plus tard.

la connexion persistante on en parle même pas, c'est à proscrire dans le cadre d'un site/application web.

my 0.2€
Posté le 26 07 2006 à 13h12
angel2k - Membre - www
je confirme mon impression par la pratique :

[nico@troll:~] time php -f test.php -c /etc/php4/apache/php.ini 2> /dev/null
test avec 1 seule ouverture/fermeture

real 0m2.380s
user 0m0.448s
sys 0m0.224s
[nico@troll:~] time php -f test2.php -c /etc/php4/apache/php.ini 2> /dev/null
test avec 1 ouverture/fermeture par query

real 0m8.960s
user 0m1.780s
sys 0m1.444s
Posté le 26 07 2006 à 13h24
angel2k - Membre - www
Thanks angel, j'avais tendance à penser comme toi, mais avec des chiffres c'est tt suite plus parlant
Posté le 26 07 2006 à 14h52
ZeA - Membre - www
Ouaip ! Merci pour ton "bench" Angel :)
Posté le 26 07 2006 à 15h16
benzor - Administrateur - www
ca me rassure, c'est la technique que j'utilisais
Posté le 26 07 2006 à 16h45
caniche - Membre - www
<< 1 2 3 >>
Sujets Base de données
<< 1 2 >>
Classer une requête
Auteur : aguenard
Posté le 24 04 2007 à 11h17
5 Réponses (Nouveau sujet)
Sujet visité 931 fois
MySQL > Eviter la (...)
Auteur : tyler
Posté le 02 04 2007 à 10h07
16 Réponses (Nouveau sujet)
Sujet visité 852 fois
MySql et hebergement
Auteur : nanook
Posté le 15 03 2007 à 09h04
7 Réponses (Nouveau sujet)
Sujet visité 646 fois
Comparaison de (...)
Auteur : airvai
Posté le 01 03 2007 à 10h05
6 Réponses (Nouveau sujet)
Sujet visité 863 fois
[résolu]sql 95 bdd !
Auteur : senkante
Posté le 08 02 2007 à 11h38
4 Réponses (Nouveau sujet)
Sujet visité 502 fois
[annulé]against
Auteur : veensez
Posté le 27 10 2006 à 20h15
5 Réponses (Nouveau sujet)
Sujet visité 782 fois
MySQL - Méthode de (...)
Auteur : benzor
Posté le 25 07 2006 à 17h20
24 Réponses (Nouveau sujet)
Sujet visité 731 fois
<< 1 2 >>
Mentions légales   -   Crédits   -   Nous contacter   -   © Benzor 2006