Taille en mémoire des différents fetch
9 messages • Page 1 sur 1
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
Taille en mémoire des différents fetch
Bonjour,
Je cherche à savoir si un fetch_array prend 2 fois plus de taille en mémoire qu'un fetch_row ?
Prenons l'exemple de MySQL :
- fetch_row retourne un recordset de résultats dans un tableau avec un indice comme nom de colonne
Array ( [0] => 1 [1] => Je suis du texte )
- fetch_array retourne un recordset de résultats dans un tableau avec un indice comme nom de colonne, et le nom du champs dans une colonne supplémentaire.
Array ( [id] => 1 [0] => 1 [libelle] => Je suis du texte [1] => Je suis du texte )
Vous imaginez donc les conséquences avec une requête retournant plusieurs milliers de résultats.
J'ai cherché à savoir s'il y avait des pointeurs en modifiant les données mais visiblement, non.
Je n'ai pas trouvé de fonction pour connaitre la taille d'une variable en mémoire.
Merci
Je cherche à savoir si un fetch_array prend 2 fois plus de taille en mémoire qu'un fetch_row ?
Prenons l'exemple de MySQL :
- fetch_row retourne un recordset de résultats dans un tableau avec un indice comme nom de colonne
Array ( [0] => 1 [1] => Je suis du texte )
- fetch_array retourne un recordset de résultats dans un tableau avec un indice comme nom de colonne, et le nom du champs dans une colonne supplémentaire.
Array ( [id] => 1 [0] => 1 [libelle] => Je suis du texte [1] => Je suis du texte )
Vous imaginez donc les conséquences avec une requête retournant plusieurs milliers de résultats.
J'ai cherché à savoir s'il y avait des pointeurs en modifiant les données mais visiblement, non.
Je n'ai pas trouvé de fonction pour connaitre la taille d'une variable en mémoire.
Merci
- NextGeneration
- WRInaute impliqué

- Messages: 425
- Inscription: Mer Sep 27, 2006 18:34
question taille en mémoire, c'est similaire. Les clés sont indexées via un hashset, donc la place que prennent les "libellés" est purement proportionnelle a leur longueur propre.
Si tous tes libellés font 10 octets et que tu as 10 champs, ca bouffera 100 octets en mémoire, que ton resultset fasse 4 lignes ou 4 milions
Si tous tes libellés font 10 octets et que tu as 10 champs, ca bouffera 100 octets en mémoire, que ton resultset fasse 4 lignes ou 4 milions
Je pense que l'array bouffe plus surtout si tu l'utilises avec les 2 index (le mode par défaut ou MYSQL_BOTH)
Et d'après la doc :
http://fr2.php.net/manual/fr/function.m ... -array.php
Il est très légèrement plus lent ( ce n'est pas significatif cela dit)
EDIT : Après si tu veux un truc ultra optimisé, vaut mieux le fetch row.
PS : Ca me rappelle les études faites sur les opérateurs de concaténation "+", ".", "," ou sur l'utilisation du print et du echo ou encore celle des quotes ou double quotes.
Et d'après la doc :
http://fr2.php.net/manual/fr/function.m ... -array.php
Il est très légèrement plus lent ( ce n'est pas significatif cela dit)
EDIT : Après si tu veux un truc ultra optimisé, vaut mieux le fetch row.
PS : Ca me rappelle les études faites sur les opérateurs de concaténation "+", ".", "," ou sur l'utilisation du print et du echo ou encore celle des quotes ou double quotes.
Salut,
Merci pour ta réponse mais je souhaiterais trouver des réponses concrètes au problème.
J'avais lu le significativement plus lent, mais j'en ai rien conclu. Légèrement plus lent pour la requête ou l'initialisation du recordset sûrement, mais après ?
- Es-ce que ça double (j'osais espérer que la fonction en natif utiliserait des pointeurs, non) ?
- Ou sinon as-tu une fonction ou une technique pour obtenir la taille d'une variable en mémoire (pas memory_get_usage) ?
J'aimerais, en effet, m'appuyer sur une documentation officielle ou des benchs pour avancer ces possibilités.[/i]
Morph1er a écrit:Et d'après la doc :
http://fr2.php.net/manual/fr/function.m ... -array.php
Il est très légèrement plus lent ( ce n'est pas significatif cela dit)
Merci pour ta réponse mais je souhaiterais trouver des réponses concrètes au problème.
J'avais lu le significativement plus lent, mais j'en ai rien conclu. Légèrement plus lent pour la requête ou l'initialisation du recordset sûrement, mais après ?
- Es-ce que ça double (j'osais espérer que la fonction en natif utiliserait des pointeurs, non) ?
- Ou sinon as-tu une fonction ou une technique pour obtenir la taille d'une variable en mémoire (pas memory_get_usage) ?
J'aimerais, en effet, m'appuyer sur une documentation officielle ou des benchs pour avancer ces possibilités.[/i]
je pense qu'il vaut mieux utiliser mysql_fetch_assoc()
qui renvoi un tableau associatif et non pas associatif ET indexé comme le fait mysql_fetch_array()
il y a donc deux fois moins d'entrées dans le tableau
http://fr.php.net/mysql_fetch_assoc
qui renvoi un tableau associatif et non pas associatif ET indexé comme le fait mysql_fetch_array()
il y a donc deux fois moins d'entrées dans le tableau
http://fr.php.net/mysql_fetch_assoc
- NextGeneration
- WRInaute impliqué

- Messages: 425
- Inscription: Mer Sep 27, 2006 18:34
dorian53 a écrit:Merci les gars, je connais l'intérêt et le comportement de chacune des fonctions. Je cherche à comparer objectivement sur des chiffres plus ou moins précis les performances.
Ben tu crées un jeu de test et du bench

9 messages • Page 1 sur 1
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Parts de marché des moteurs en Europe (Février 2006)
- Google Images indexe 2 187 212 422 images
- Les crawlers de Yahoo!
- NTIC et éthiques : la valeur de l'information en ligne (rapport de DESS)
- Google indexe plus de 8 milliards de pages
- Le cadeau de Noël 2007 de Google AdSense
- Utilisation des différents produits et services Google aux Etats-Unis (Janvier 2008)
- Tout pour indexer vos contenus dans Google
- Faire des liens externes
- Etude des Data Centers de Google
- Fetch API Request
- taille des images / taille de l'écran
- différents résultats sur différents outil de similarite
- Compatibilité mémoire portable
- Réparation mémoire KINGSTONE
- Sujet de mémoire
- Choisir sa mémoire
- Problème de Mémoire utilisée
- Mémoire sur le référencement
- Blanc de memoire...
- recherche de sujet de memoire
- Probleme de memoire...
- Script PHP : Problème de mémoire
- cherche script de publication de memoire
- Google a une certaine mémoire.
- Calculer l'indice de co-occurrence
Cet outil vous permet de calculer l'indice de co-occurrence de 2 ou 3 termes, ainsi que le ratio E/F. L'indice de co-occurrence mesure le relation entre les termes : plus cet indice est élevé, plus les termes sont reliés. Concrètement, plus l'indice est élevé, plus il est fréquent de trouver des documents qui contiennent les différents termes.
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités





le forum