Mysql bloque au bout de x enregistrements
10 messages • Page 1 sur 1
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
Mysql bloque au bout de x enregistrements
Bonjour à tous
Je recherche activement une solution quand a mon soucis qui est le suivant :
- J'ai un fichier XML de 500mo (c enorme je sais mais je peux pas moins) .
- Mon serveur étant incapable de l'analyser malgré simplexml j'ai donc installé wamp et tenté de l'analyser en local .
- Le fichier devrait sortir environ 20 000 sur 1 table + 1 300 000 sur une 2eme table .
- Le soucis est qu'a partir de 3900 enregistrementssur la table 1 et 280 000 sur la table 2 ben MYSQL bloque ! j'ai cette erreur :
Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on 'localhost' (10048) in
Warning: mysql_select_db() [function.mysql-select-db]: Can't connect to MySQL server on 'localhost' (10048) in
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Can't connect to MySQL server on 'localhost' (10048) in
Warning: mysql_query() [function.mysql-query]: Can't connect to MySQL server on 'localhost' (10048) in
J'ai pourtant modifié le PHP.INI en mettant des valeurs elevés dans max_time_execution et memory limit a 512m .
Autre chose a modifier pe pour que ca traite ?
Je recherche activement une solution quand a mon soucis qui est le suivant :
- J'ai un fichier XML de 500mo (c enorme je sais mais je peux pas moins) .
- Mon serveur étant incapable de l'analyser malgré simplexml j'ai donc installé wamp et tenté de l'analyser en local .
- Le fichier devrait sortir environ 20 000 sur 1 table + 1 300 000 sur une 2eme table .
- Le soucis est qu'a partir de 3900 enregistrementssur la table 1 et 280 000 sur la table 2 ben MYSQL bloque ! j'ai cette erreur :
Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on 'localhost' (10048) in
Warning: mysql_select_db() [function.mysql-select-db]: Can't connect to MySQL server on 'localhost' (10048) in
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Can't connect to MySQL server on 'localhost' (10048) in
Warning: mysql_query() [function.mysql-query]: Can't connect to MySQL server on 'localhost' (10048) in
J'ai pourtant modifié le PHP.INI en mettant des valeurs elevés dans max_time_execution et memory limit a 512m .
Autre chose a modifier pe pour que ca traite ?
- skippyzrnr
- WRInaute passionné

- Messages: 656
- Inscription: Mar Jan 11, 2005 10:08
Ton serveur PHP peut uploader un fichier de 500Mo???
Sinon si tu as la possibilité de le faire en SSH tu pourrais reduire les risques de problèmes.
Sinon si tu as la possibilité de le faire en SSH tu pourrais reduire les risques de problèmes.
- Selection A
- WRInaute impliqué

- Messages: 255
- Inscription: Lun Mar 14, 2005 11:20
Quelles types de requetes SQL fais tu ?
Essaye de voir si tu peux pas les optimiser.
Essaye de voir si tu peux pas les optimiser.
Bha franchement c'est pas des requetes bien lourdes . Y'a juste 2 insert pou insérer dans les deux tables .
Sinon j'utilise une dédié un celeron ac 768mo de ram , c'est quand meme amplement suffisant normalement mais ca plante .
La je fais ca en local avec wamp et ma machine est puissante .
Ce qui est étrange c'est que ca bloque toujours vers le meme nombre d'enregistrements . pas moyen d'aller plus loin .
Y'a pas une conf de mysql a modifier ? ou php ou httpd?
Ca doit pas planter y'a vraiment pas de raison . En plus j'utilise simplexml donc c plutot simple .
Sinon j'utilise une dédié un celeron ac 768mo de ram , c'est quand meme amplement suffisant normalement mais ca plante .
La je fais ca en local avec wamp et ma machine est puissante .
Ce qui est étrange c'est que ca bloque toujours vers le meme nombre d'enregistrements . pas moyen d'aller plus loin .
Y'a pas une conf de mysql a modifier ? ou php ou httpd?
Ca doit pas planter y'a vraiment pas de raison . En plus j'utilise simplexml donc c plutot simple .
- Selection A
- WRInaute impliqué

- Messages: 255
- Inscription: Lun Mar 14, 2005 11:20
Ce qui me parait bizarre c'est que tu as une erreur sur un mysql_connect() au milieu de ton traitement !
Si tu fait un traitement batch pourquoi il y a une reconnexion à MySQL ?
Si tu fait un traitement batch pourquoi il y a une reconnexion à MySQL ?
Ben voila ca m'a paru aussi étrange y'a pas a ce que ca se deconnecte comme ca .
Je me suis dit que c'etait pe un probleme de wamp mais j'ai rien trouvé .
Mysql bloque pas les connexions a partir de x secondes de script ?
J'ai cette erreu la aussi :
Warning: mysql_select_db() [function.mysql-select-db]: A link to the server could not be established
C'est comme si la connexion s'arretait d'un coup a cause d'une raison obscure ...
Je me suis dit que c'etait pe un probleme de wamp mais j'ai rien trouvé .
Mysql bloque pas les connexions a partir de x secondes de script ?
J'ai cette erreu la aussi :
Warning: mysql_select_db() [function.mysql-select-db]: A link to the server could not be established
C'est comme si la connexion s'arretait d'un coup a cause d'une raison obscure ...
- Selection A
- WRInaute impliqué

- Messages: 255
- Inscription: Lun Mar 14, 2005 11:20
L'erreur sur le mysql_connect() vient d'un ordre mysql_connect() dans ton code !
Essaye de voir si tu fais bien qu'une connection à MySQL en début de traitement et qu'une deconnection en fin de traitement !
Deuxio, y a t il d'autres accès à ta base de données pendant le traitement ?
Essaye de voir si tu fais bien qu'une connection à MySQL en début de traitement et qu'une deconnection en fin de traitement !
Deuxio, y a t il d'autres accès à ta base de données pendant le traitement ?
Je vous remercie bien selectionA m'a mis sur la piste :
J'ai tjrs codé mes scripts avec un maximum de connection/deconnection fin de libérer au maximum mysql et d'otpimiser . J'avais donc fais comme ceci (qui fonctionne bien en php4) :
<?
simple_cml(blablvbala)
foreach (blablabla)
{
traitement flux
connexion sql
traitement sql
deco sql
}
et effectivemment ca faisait planter sql . J'ai doc mis la connec tt en haut et la deco tt en bas .
Je sais pas pk ca marchait pas vu que j'ai tjrs fait comme ca , pe que pr un gros script c mieux ?
Merci a tous
Max
?>
J'ai tjrs codé mes scripts avec un maximum de connection/deconnection fin de libérer au maximum mysql et d'otpimiser . J'avais donc fais comme ceci (qui fonctionne bien en php4) :
<?
simple_cml(blablvbala)
foreach (blablabla)
{
traitement flux
connexion sql
traitement sql
deco sql
}
et effectivemment ca faisait planter sql . J'ai doc mis la connec tt en haut et la deco tt en bas .
Je sais pas pk ca marchait pas vu que j'ai tjrs fait comme ca , pe que pr un gros script c mieux ?
Merci a tous
Max
?>
Ouille Ouille..
Mets toi a la place du serveur ^^
Tu demandes de faire plusieurs milliers de connesions/déconnesions en un temps record.
Il est normal qu'après un certain temps, il est completement largué. (un DoS quoi ^^)
Le mieux est d'ouvrir ta connexion, faire ton traitement (mysql_query()) et quand tout est fini, tu ferme la connexion
Mets toi a la place du serveur ^^
Tu demandes de faire plusieurs milliers de connesions/déconnesions en un temps record.
Il est normal qu'après un certain temps, il est completement largué. (un DoS quoi ^^)
Le mieux est d'ouvrir ta connexion, faire ton traitement (mysql_query()) et quand tout est fini, tu ferme la connexion
- Selection A
- WRInaute impliqué

- Messages: 255
- Inscription: Lun Mar 14, 2005 11:20
Le système "connexion puis requete SQL puis deconnexion" est utile pour un forum de discussion très fréquenté car cela permet de ne pas avoir trop de connexion simultannée.
Par contre, sur un traitement batch de masse cela n'est pas utile.
Par contre, sur un traitement batch de masse cela n'est pas utile.
10 messages • Page 1 sur 1
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Nouvelle version de GoogleStats : v1.1
- Gestion des langues et des sessions en PHP / MySQL
- Passage à l'heure d'été/hiver sur un forum phpBB
- Répartition des clics sur les 10 premiers résultats Google
- Google traque les colis UPS ou FedEx
- GoogleStats : analyse temps réel des visites de Google sur votre site
- Sortie officielle de GoogleStats v2.0 !
- AdSense Tracking : statistiques détaillées sur les clics AdSense
- Le WRInaute du moment
- Les deux échelles du PageRank
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


le forum