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 ?)
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é)
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à !
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)
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... ;-)
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)
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é.
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)
"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
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...?