02-02-2007, 11:48 AM
comment optimiser ce genre de choses?
( mini tutorial méthodologique)
1. détecter le problème éventuel
c'est assez simple à voir:
_ on a une requête dans une boucle
_ on a beaucoup de requetes dans une même page
_ le script est suuuuuuuuuuuper long à exécuter
2. optimiser
le truc c'est de sortir la requête de la boucle.
pour cela, il faut voir quel est le lien entre la requête hors boucle et la requête dans la boucle; à partir de là, on peut faire une jointure pour obtenir, au final, les mêmes informations en une seule requete avant la boucle. il faut tester la requete pour y inclure le bon ORDER BY.
s'il n'y a pas de requete à l'extérieur, il faut procéder autrement.
la boucle utilise une ou plusieurs variables ( comme $x et $y ou $longitude et $latitude pour une carte ) dans ce cas, il faut intégrer ces variables dans la requete, via la clause ORDER BY. par exemple, on affiche les avatars sur la carte, en triant d'abord sur la coordonnée X puis sur la coordonnée Y.
A+
Pascal
( mini tutorial méthodologique)
1. détecter le problème éventuel
c'est assez simple à voir:
_ on a une requête dans une boucle
_ on a beaucoup de requetes dans une même page
_ le script est suuuuuuuuuuuper long à exécuter
2. optimiser
le truc c'est de sortir la requête de la boucle.
pour cela, il faut voir quel est le lien entre la requête hors boucle et la requête dans la boucle; à partir de là, on peut faire une jointure pour obtenir, au final, les mêmes informations en une seule requete avant la boucle. il faut tester la requete pour y inclure le bon ORDER BY.
s'il n'y a pas de requete à l'extérieur, il faut procéder autrement.
la boucle utilise une ou plusieurs variables ( comme $x et $y ou $longitude et $latitude pour une carte ) dans ce cas, il faut intégrer ces variables dans la requete, via la clause ORDER BY. par exemple, on affiche les avatars sur la carte, en triant d'abord sur la coordonnée X puis sur la coordonnée Y.
A+
Pascal