Tilix
Messages postés171Date d'inscriptionsamedi 4 décembre 2004StatutMembreDernière intervention31 août 2009
-
19 févr. 2006 à 03:04
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 2012
-
22 févr. 2006 à 19:46
Bonsoir à tous,
Voilà mon problème. J'ai des longues boucles WHILE à effectué (+ de
3000 entrées) et malheureusement, quand je charge la page qui possède
cette boucle, elle n'arrive jamais jusqu'au bout (pas mal d'action à
faire pour chaque tour tout de même > 1 dixaine de requete sql...). La page s'arrête de se
charger et ne fini pas la boucle.
Je voudrais savoir comment faire pour que celle-ci soit
entièrement réalisé, et avec encore plus d'entrées aussi. (celà
viendrait-il de l'hebergeur ?)
FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 20153 19 févr. 2006 à 03:06
3000 entrées * 10 requètes = 30 000 requètes sur un bouclage entier :o :o :o
Il y a un temps limite pour l'exécution d'un script en PHP ==> set_time_limit() dans ton fichier php.ini.
Suffit de changer la. (ca ne marche que si l'hebergeur est un dédié)
cs_Arnauti
Messages postés392Date d'inscriptionmercredi 24 novembre 2004StatutMembreDernière intervention26 septembre 2009 19 févr. 2006 à 09:56
Et si on écrit sur la page set_limit_time(0) ; ca ne marche pas ?
A++
<hr size="2" width="100%">Si un des membres à poster une reponse qui convient, accepter là !
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 19 févr. 2006 à 11:41
Salut,
le mieux serait de demander moins de requettes... en
gros, soit tu fais une procédure en MYSQL 5, soit tu fais des INNER
JOIN ou des LEFT JOIN, ou alors, tu fais un affichage par pages...
car ton settimelimit ne va pas suffire...
In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy
Mon site (articles sur la programmation et programmes)
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 19 févr. 2006 à 12:22
30 000 requêtes dépassant les 30 secondes ? Ca fait bcp quand même, il doit y avoir moyen d'optimiser ces requêtes à mon avis, surtout si c'est du select...Et effectivement, 30 000 requêtes sur un bouclage, ou sur une page disons, ça fait aussi beaucoup. ca doit pouvoir se réduire.
Y a un autre truc à faire dans ce cas là : redescendre les infos. je veux dire, parfois, on fait plein de tables, avec des clefs étrangères, etc...et du coup on a bien fait sa structure, et de n'importe où, avec les bons where, on peut récupérer n'importe quoi.
Ben parfois, au lieu de s'appuyer sur les jointures, il vaut mieux redsecendre l'info dans une table, bcp plus bas, pour limiter les requêtes justement.
Par exemple, pour une gestion d'ebntrepôts, sur les emplacements, quand il y a des dizaines de milliers de ces emplacements, c'est peut-être pas mal de redescendre dans la table des stocks, l'info concernant la référence article qui s'y trouve, le client, etc... ;-)
Vous n’avez pas trouvé la réponse que vous recherchez ?
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 19 févr. 2006 à 14:37
lol, j'ai compris, mais il ne servirait à rien !
dans 99% des cas, on ne peut pas exécuter ce style de programmes sur un
serveur, et si l'on peut alors autant utiliser ce programme comme un
cgi ! si on fait du php, c'est pas pour se faire chier avec du C ! et
en plus, ici, le problème ne vient pas de la lenteur de php, mais de la
lenteur de mysql (30 000 requettes...)
In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy
Mon site (articles sur la programmation et programmes)
Tilix
Messages postés171Date d'inscriptionsamedi 4 décembre 2004StatutMembreDernière intervention31 août 2009 19 févr. 2006 à 17:30
Je me suis lancé dans la création d'un site de jeu de construction d'une ville.
Mon site contient plus de 2500 membres actifs.
Tous les jours, ces membres gagnent de l'argent virutel sur ce jeu.
Il y'a une boucle avec les 2500 membres du site.
Dans cette boucle, il y'a une autre boucle d'environ 10 tours (le système cherche sur 10 tables différentes afin de faire un calcul de l'argent que le membre doit gagner. (en fonction des bâtiments qu'il possède))
Soit un total de 25000 requetes.
Le nombre d'inscrit de ce site ne fait qu'augmenter de jour en jour.
Lorsque le site aura atteint encore plus de membre, le nombre de requete sera alors démultiplié.
thomvaill
Messages postés366Date d'inscriptionmercredi 7 avril 2004StatutMembreDernière intervention20 février 20072 19 févr. 2006 à 17:36
Je remet ça avec mon programme en C lol ^^
Faut que tu fasses un programme en C, qui s'éxecute avec une
tâche cron (programmes là pour qu'il s'éxecute plutot la nuit quand il
y a peu d'acitvitée). Qui fasse ce travail.
Thomvaill
IRC : Thomas (irc.heliosnet.org:6667 #programmation)
sidf
Messages postés1216Date d'inscriptionmardi 20 décembre 2005StatutMembreDernière intervention18 octobre 20125 19 févr. 2006 à 17:56
"Dans cette boucle, il y'a une autre boucle d'environ 10 tours (le système cherche sur 10 tables différentes afin de faire un calcul de l'argent que le membre doit gagner. (en fonction des bâtiments qu'il possède))"
c'est peut- etre là qu'il ya un pb de conception ou structure de ta base
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 20 févr. 2006 à 06:47
Je le pense aussi.
Tilix, vous savez combien il y a de membres sur CS ? 591000. Vous imaginez que CS soit avoir pas mal de tables différentes, aussi.
Et pourtant, hormis quand les serveurs plantent ;-), vous avez déjà vu une requête qui prend plus de 10s sur ce site...?