SQL : 4requetes simple ou 1 de bourrin ?

SQL : 4requetes simple ou 1 de bourrin ? - PHP - Programmation

Marsh Posté le 24-03-2003 à 12:31:11    

A votre avis dans une page il vaut mieux 4 petites requetes tres simple ou une grosse de bourrin avec correlation jointure & co ?


---------------
:D
Reply

Marsh Posté le 24-03-2003 à 12:31:11   

Reply

Marsh Posté le 24-03-2003 à 12:37:01    

ça dépend des requêtes :D
Mais si tes requêtes simples n'ont pas de jointure elles peuvent être plus légères séparément... faut voir...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 24-03-2003 à 15:08:07    

Généralement, selon les indexes créés et le volume des données, une requête unique mais complexe est bien plus rapide que plusieurs petites requêtes, surtout si ces dernières aboutissent sur des jointures à la main (avec des while dans tous les sens)
 
En effet, dans la plupart des cas, c'est le calcul du plan d'éxécution qui est le plus long lors de l'éxécution d'une requête.
Donc le calculer une seule fois pour une requête complexe est très souvent bien plus rapide que de le calculer X fois pour X requêtes simples.
 
Cela aboutis aussi généralement à un traffic moindre entre le serveur Web et le serveur de Base de données, ce qui peut être très important, notamment dans le cas d'une architecture 2/3.

Reply

Marsh Posté le 24-03-2003 à 15:12:09    

MagicBuzz a écrit :

surtout si ces dernières aboutissent sur des jointures à la main (avec des while dans tous les sens)


 
c'est clair, faut éviter les requêtes dans les boucles, une jointure est moins coûteuse


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 24-03-2003 à 15:19:13    

noda a écrit :

A votre avis dans une page il vaut mieux 4 petites requetes tres simple ou une grosse de bourrin avec correlation jointure & co ?


tu peux alléger encor en faisant des select des champs que tu as réellement besoin tu y gagne beaucoup.  
tu peux faire aussi un mysql_unbeffered_query(); dans le cas ou tu ne fais pas de numrows derrier

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed