Vous n'êtes pas connecté - 2 Membres connectés
Catégories
Graphisme
Flash (51)
Print (66)
Programmation
PHP (66)
Base de données (17)
ASP (2)
CSS (26)
Hardware
PC (34)
Mac (14)
Linux (5)
Divers
Blabla (261)
933 Sujets
12337 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 >>
auto incremente et (...)
Auteur : senkante
Posté le 03 04 2008 à 19h27
12 Réponses (Nouveau sujet)
Sujet visité 1358 fois
requete sur le mois (...)
Auteur : o0o
Posté le 10 07 2008 à 16h16
4 Réponses (Nouveau sujet)
Sujet visité 320 fois
Chercher DB (...)
Auteur : benzor
Posté le 10 01 2008 à 11h44
4 Réponses (Nouveau sujet)
Sujet visité 726 fois
iso et bordel
Auteur : senkante
Posté le 14 12 2007 à 14h56
4 Réponses (Nouveau sujet)
Sujet visité 871 fois
URGENT HELP
Auteur : benzor
Posté le 16 11 2007 à 09h38
32 Réponses (Nouveau sujet)
Sujet visité 1594 fois
[résolu] (...)
Auteur : o0o
Posté le 15 08 2007 à 16h31
4 Réponses (Nouveau sujet)
Sujet visité 978 fois
world database
Auteur : senkante
Posté le 28 06 2007 à 22h21
9 Réponses (Nouveau sujet)
Sujet visité 1234 fois
[résolu] AND ?
Auteur : senkante
Posté le 11 06 2007 à 16h43
6 Réponses (Nouveau sujet)
Sujet visité 768 fois
Problème envoie (...)
Auteur : SKGZ
Posté le 13 10 2006 à 20h06
4 Réponses (Nouveau sujet)
Sujet visité 1232 fois
[php&bdd] erreur d' (...)
Auteur : otar
Posté le 09 05 2007 à 13h02
5 Réponses (Nouveau sujet)
Sujet visité 833 fois
<< 1 2 >>
Mentions légales   -   Crédits   -   Nous contacter   -   © Benzor 2006