Maximum de connexion MySql aurorisées, comment faire?
20 messages
• Page 1 sur 2 • 1, 2
Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics
-

jeromax - WRInaute passionné

- Messages: 1110
- Inscription: 12 Nov 2003
Maximum de connexion MySql aurorisées, comment faire?
Salut,
j'ai posé cette question sur le forum d'OVH mais pas eut de réponses satisfaisantes...
Voila mon problème:
OVH autorise 3 connexion MySql simultanée maxi.
Comment faire pour ne JAMAIS avoir d'erreurs?
Voila le code que je me suis fait:
J'ai environ 200 visiteurs par jour, ce qui n'est pas énorme, mais je rencontre quand même les problèmes de max_connexion.
Les personnes qui ont des sites ENORMES (genre wri
) peuvent-ils me dire la technique employée (même chez un autre hébergeur) pour effectuer leurs requetes?
Quelle est la solution optimale?
Comment faites-vous pour gérer les connexions simultanées?
Merci
PS1: Les "@" devant les noms de fonctions ne sont pas une solution pour moi.
PS2: Je ne veux pas utiliser de cache pour éviter les requètes redondantes, c'est vraiment la manière de gérer l'attente d'accès à la base qui m'interresse.
j'ai posé cette question sur le forum d'OVH mais pas eut de réponses satisfaisantes...
Voila mon problème:
OVH autorise 3 connexion MySql simultanée maxi.
Comment faire pour ne JAMAIS avoir d'erreurs?
Voila le code que je me suis fait:
- Code: Tout sélectionner
function execRequete($pRequete){
$w1="???";
$w2="???";
$w3="???";
$dataBase="???";
$i=0;
do{
if(!$idReq = mysql_connect($w1,$w2,$w3)){sleep(1);}
$i++;
if($i>10){die("Erreur...");}
}while (!$idReq);
$result=mysql_select_db($dataBase);
$retour=mysql_query($pRequete);
mysql_close($idReq);
return $retour;
}
J'ai environ 200 visiteurs par jour, ce qui n'est pas énorme, mais je rencontre quand même les problèmes de max_connexion.
Les personnes qui ont des sites ENORMES (genre wri
Quelle est la solution optimale?
Comment faites-vous pour gérer les connexions simultanées?
Merci
PS1: Les "@" devant les noms de fonctions ne sont pas une solution pour moi.
PS2: Je ne veux pas utiliser de cache pour éviter les requètes redondantes, c'est vraiment la manière de gérer l'attente d'accès à la base qui m'interresse.
- Tex
- WRInaute occasionnel

- Messages: 449
- Inscription: 9 Juil 2004
tu peut essayer de te connecter en persistant avec mysql_pconnect()
peut etre que ça gérera mieux l'acces aux fils mysql dans la mesure ou avec ça tu peut utiliser une connexion deja ouverte
mais bon 3 connexions...c'est vraiment pas cool
peut etre que ça gérera mieux l'acces aux fils mysql dans la mesure ou avec ça tu peut utiliser une connexion deja ouverte
mais bon 3 connexions...c'est vraiment pas cool
- Mies Van der Rohe
- WRInaute passionné

- Messages: 1562
- Inscription: 7 Déc 2002
autrement si tu avais vraiment beaucoup de connexions mettre tes pages en cache est une bonne solution
- Tex
- WRInaute occasionnel

- Messages: 449
- Inscription: 9 Juil 2004
jeromax a écrit:bah non... le max_connexion serait atteint encore plus vite.
Quel est le code que vous utilisez? pleaaaaaaaaaaase...
pas forcemment, puisque les connexions ouvertes peuvent etre réutilisées directemment sans nouvelle ouverture.
avec un connect simple il arrive souvent que la latence dans le process de fermeture d'un fils provoque une cascade d'ouvertureen surplus et ainsi un trop de connexion ouvertes pour l'usage reel, alors qu'en pconnect tu utilise 100% de tes connexions.
-

George Abitbol - WRInaute passionné

- Messages: 1923
- Inscription: 6 Juin 2003
jeromax a écrit:Je suis content de te l'entendre dire, mais ça ne m'avance guère...
Tu dois :
- ouvrir ta connexion juste avant d'en avoir besoin
- faire toutes tes requêtes
- et fermer le plus tôt possible
Le plus tôt possible, ça veut dire que si tu as une requête puis une boucle sur les résultats, tu peux fermer la connexion AVANT la boucle. Si tu en as plusieurs à faire, tu exécutes tes différentes requêtes, tu fermes la connexion et ensuite tu récupères tes résultats en étant déconnecté.
Fred
-

jeromax - WRInaute passionné

- Messages: 1110
- Inscription: 12 Nov 2003
Merci, mais c'est ce que je fais: regarde ma fonction, je lui fait retourner le résultat
Je ne parcours les résultats qu'une fois la connection fermée.
Par contre c'est vrai que pour le moment, j'ouvre une connexion à chaque requete (conseillé par les forumeurs d'OVH).
Je ne le faisais pas, puisque je suis obligé de concaténer mes requètes (séparées par un caractère à la noix) puis de faire un split dessus pour les exécuter une par une.
par exemple, si j'update plusieurs table, je ne peux faire
Car mysql_query n'exécute que la première requète (php4)
La dessus, personne n'a pu me dire pourquoi...
- Code: Tout sélectionner
return $retour;
Je ne parcours les résultats qu'une fois la connection fermée.
Par contre c'est vrai que pour le moment, j'ouvre une connexion à chaque requete (conseillé par les forumeurs d'OVH).
Je ne le faisais pas, puisque je suis obligé de concaténer mes requètes (séparées par un caractère à la noix) puis de faire un split dessus pour les exécuter une par une.
par exemple, si j'update plusieurs table, je ne peux faire
- Code: Tout sélectionner
mysql_query("update table1....;update table2...;etc...");
Car mysql_query n'exécute que la première requète (php4)
La dessus, personne n'a pu me dire pourquoi...
- jeroen
- WRInaute passionné

- Messages: 2461
- Inscription: 30 Aoû 2002
200 visiteurs par jour, ça fait une moyenne de 1 connexion toutes les 400 secondes....
T'as forcèment un preblème de requête qq part...
Fais ça et fait des test en même temps : calcul le temps exact de tes requête sql
T'as forcèment un preblème de requête qq part...
George Abitbol a écrit:Tu dois :
- ouvrir ta connexion juste avant d'en avoir besoin
- faire toutes tes requêtes
- et fermer le plus tôt possible
Le plus tôt possible, ça veut dire que si tu as une requête puis une boucle sur les résultats, tu peux fermer la connexion AVANT la boucle. Si tu en as plusieurs à faire, tu exécutes tes différentes requêtes, tu fermes la connexion et ensuite tu récupères tes résultats en étant déconnecté.
Fred
Fais ça et fait des test en même temps : calcul le temps exact de tes requête sql
- Tex
- WRInaute occasionnel

- Messages: 449
- Inscription: 9 Juil 2004
jeromax a écrit:par exemple, si j'update plusieurs table, je ne peux faire
- Code: Tout sélectionner
mysql_query("update table1....;update table2...;etc...");
Car mysql_query n'exécute que la première requète (php4)
La dessus, personne n'a pu me dire pourquoi...
tout simplement par soucis de sécurité, sur un script de recherche tout simple par exemple il suffirait de coder dans le formulaire un code d'echapement pour sortir de la premiere requete et ensuite de rajouter ";delete from nom_de_la_table_au_hasard_ou_trouvé_en_provocant_une_erreur_mysql" pour tout effacer sur le site ...
-

jeromax - WRInaute passionné

- Messages: 1110
- Inscription: 12 Nov 2003
Merci Tex !
Donc tout le monde concatène ses requètes puis les redécoupe?
Sinon pour mon autre problème, je vais faire des tests en concaténant les requètes et voir comment ça se passe.
Donc si j'ai 4 personnes qui tente d'accéder en même temps, j'aurai forcément un plantage?
Pourquoi pipologue dit que ma fonction est une belle connerie?
Je tente une connexion jusqu'à ce qu'elle se fasse, c'est pas bête ça non?
En tous cas, j'ai bcp moins d'erreur dans mes logs qu'avant avec cette méthode.
De temps en temps je compare mes logs:
ex: j'ai une table qui stocke les visiteurs par jour et une autre par mois (juste le nombre)
En faisant un SUM sur ma première je dois normalement retrouver le résultat dans la deuxième. Et bien avec cette fonction je n'ai que rarrement des écarts, alors qu'avant...
Si je ne faisais pas ce genre de vérif, je ne vous aurai sans doute jamais posé la question,pensant que mes logs fonctionnaient correctement....
Donc tout le monde concatène ses requètes puis les redécoupe?
Sinon pour mon autre problème, je vais faire des tests en concaténant les requètes et voir comment ça se passe.
Donc si j'ai 4 personnes qui tente d'accéder en même temps, j'aurai forcément un plantage?
Pourquoi pipologue dit que ma fonction est une belle connerie?
Je tente une connexion jusqu'à ce qu'elle se fasse, c'est pas bête ça non?
En tous cas, j'ai bcp moins d'erreur dans mes logs qu'avant avec cette méthode.
De temps en temps je compare mes logs:
ex: j'ai une table qui stocke les visiteurs par jour et une autre par mois (juste le nombre)
En faisant un SUM sur ma première je dois normalement retrouver le résultat dans la deuxième. Et bien avec cette fonction je n'ai que rarrement des écarts, alors qu'avant...
Si je ne faisais pas ce genre de vérif, je ne vous aurai sans doute jamais posé la question,pensant que mes logs fonctionnaient correctement....
20 messages
• Page 1 sur 2 • 1, 2
Formation recommandée sur ce thème :
Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par les experts Google Analytics de Ranking Metrics.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Nombre d'enregistrement maximum pour MySQL ?
- connexion Mysql
- Connexion a MSSQL et MySQL
- trop de connexion mysql
- Résolu:: Connexion distante mysql
- Comment procéder connexion Mysql?
- connexion au serveur mysql impossible
- problème connexion mysql free
- Connexion a distance a ma base de donné MYSQL
- Problème de connexion MySQL sur OVH
- Gestion des langues et des sessions en PHP / MySQL - 02-05-2004
- AdSense Tracking : statistiques détaillées sur les clics AdSense - 29-02-2004
- Honda va inclure Google Earth dans son système de navigation par satellite - 07-04-2006
- Passage à l'heure d'été/hiver sur un forum phpBB - 31-10-2010
- PR10 : les meilleurs Google PageRank de la planète ! - 24-10-2002
- Script de mise en cache des pages (PHP MySQL) - 09-08-2010
- Barre d'outils Google pour Firefox : version 3 - 13-12-2006
- GoogleStats : analyse temps réel des visites de Google sur votre site - 02-10-2002
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 3 invités

