hors boucle ou pas

11 réponses
AuteurMessage

Geo 113 |
Modérateur

Photo de Geo 113

Inscrit le : 04/05/2005

# Le 10/08/2005 à 19:03

Hello,
une petite question d'optimisation,
est ce que le fait de faire des actions dans une boucle mysql bouffe plus de ressources que de s'arranger pour les faire après ?
(les actions prendront le même temps à s'executer, mais on aura maintenu la connection mysql moins longtemps)
j'en suis pas convaincu du tout mais j'ai un pti doute

CosmixOuvrir dans une nouvelle fenetre
Rendez imprévisible l'Economie; Mentez aux sondages

Julgates | Julien
Administrateur

Photo de Julgates

Inscrit le : 09/03/2005

# Le 10/08/2005 à 19:46

coupe mysql le plus vite possible, tu libères de la mémoire ;-)

Shopping Time NetworkOuvrir dans une nouvelle fenetre - Founder / CTO

Bool | Olivier
Modérateur

Photo de Bool

Inscrit le : 09/05/2005

# Le 10/08/2005 à 20:22

Ouais enfin si tu dois stocker les données temporairement en mémoire pour pouvoir te déconnecter plus tôt, tu ne libères pas du tout de mémoire (surtout que les données stockées par PHP prennent généralement plus de place en mémoire que si elles étaient stockées dans un programme "classique").

daevel : infogérance et conseilOuvrir dans une nouvelle fenetre || moiOuvrir dans une nouvelle fenetre

Geo 113 | Geoffrey
Modérateur

Photo de Geo 113

Inscrit le : 04/05/2005

# Le 10/08/2005 à 20:44

donc vous me confirmez que tant que le fetch array est pas fini la connection reste ouverte ?
bon wala j'en suis donc toujours au point mort grace à bool

CosmixOuvrir dans une nouvelle fenetre
Rendez imprévisible l'Economie; Mentez aux sondages

Bool | Olivier
Modérateur

Photo de Bool

Inscrit le : 09/05/2005

# Le 10/08/2005 à 21:11

Déjà, utilises mysql_fetch_assoc au lieu de fetch_array (il me semble que fetch_array retourne tous les champs en double, non ?).

Ensuite, mysql_query bufferise le résultat, donc en théorie tu devrais pouvoir te déconnecter avant même de faire le fetch.

PS : de rien

daevel : infogérance et conseilOuvrir dans une nouvelle fenetre || moiOuvrir dans une nouvelle fenetre

Geo 113 | Geoffrey
Modérateur

Photo de Geo 113

Inscrit le : 04/05/2005

# Le 10/08/2005 à 21:41

Merci beaucoup

j'utilisais bien mysql_fetch_array() mais je suis feignant d'écrire le nom en entier

CosmixOuvrir dans une nouvelle fenetre
Rendez imprévisible l'Economie; Mentez aux sondages

mirage | Vincent
Modérateur

Photo de mirage

Inscrit le : 04/05/2005

# Le 10/08/2005 à 22:29

Geo 113 a dit :
j'utilisais bien mysql_fetch_array() mais je suis feignant d'écrire le nom en entier

Il me semble que Bool disait justement de ne pas l'utiliser car il retourne un tableau associatif et/ou un tableau indexé, comme l'indique la docOuvrir dans une nouvelle fenetre . De plus, il n'existe pas de fonction fetch_array()Ouvrir dans une nouvelle fenetre

Rano | Jean
Modérateur

Photo de Rano

Inscrit le : 13/04/2005

# Le 11/08/2005 à 11:51

Geo 113 a dit :
Merci beaucoup

j'utilisais bien mysql_fetch_array() mais je suis feignant d'écrire le nom en entier


Ba utilise mysql_fetch_row() alors

Chambres d'hote tavelOuvrir dans une nouvelle fenetre
Séjours en provenceOuvrir dans une nouvelle fenetre
Forum mariageOuvrir dans une nouvelle fenetre

mirage | Vincent
Modérateur

Photo de mirage

Inscrit le : 04/05/2005

# Le 11/08/2005 à 17:54

En gros, vaut mieux utiliser quoi ?
mysql_fetch_array() ?
mysql_fetch_assoc() ?
mysql_fetch_row() ?

(Vous m'avez perturbé avec vos histoires )

MultiNetWorks | Damien
Membre

Photo de MultiNetWorks

Inscrit le : 13/05/2005

# Le 11/08/2005 à 18:01

Mmmmmh, je dirais, ça dépend des cas ;)

Damien...

Bool | Olivier
Modérateur

Photo de Bool

Inscrit le : 09/05/2005

# Le 11/08/2005 à 18:07

*** mysql_fetch_row ***

avantages :
- en théorie plus rapide, mais comme indiqué dans la doc, le gain est négligeable.
- ça fait 2 caractères de moins à écrire

inconvénients :
- la manipulation de résultats de requetes ayant un certain nombre de colonnes devient assez ardues
- le code devient rapidement imbuvable


*** mysql_fetch_assoc ***

avantages :
- les colonnes sont nommées, donc code clair et manipulation facile

inconvénients :
- en théorie légèrement plus lent que mysql_fetch_row


*** mysql_fetch_array ***

avantages :
- très polyvalente (par défaut elle retourne les colonnes sous leur forme numérique ET associative)

inconvénients :
- colonnes en double = consomme un petit plus de mémoire, et doit être légèrement plus lent que mysql_fetch_row et mysql_fetch_assoc

daevel : infogérance et conseilOuvrir dans une nouvelle fenetre || moiOuvrir dans une nouvelle fenetre

mirage | Vincent
Modérateur

Photo de mirage

Inscrit le : 04/05/2005

# Le 11/08/2005 à 18:22

Merci, au moins c'est clair

Répondre

Vous ne pouvez pas participer au forum, car votre inscription n'a pas été validée. Pour vous faire valider en tant que Membre, cliquez ici.

© MHN - Tous droits réservés | CNIL N°844440 | 23/11/2024 19:09:16 | Généré en 6.48ms | Contacts | Mentions légales |