IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Procédural MySQL Discussion :

[SGBD] [PHP/MySQL Query]Quelle est la taille du tableau retourné?


Sujet :

SQL Procédural MySQL

  1. #1
    Membre actif Avatar de Jean_Benoit
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 499
    Points : 234
    Points
    234
    Par défaut [SGBD] [PHP/MySQL Query]Quelle est la taille du tableau retourné?
    Bonjour,
    Je viens de coder ma première requête PHP/MySQL dans Wamp.
    J'utilise d'abord:
    $result = mysql_query( $query, $database )
    Ensuite
    $row = mysql_fetch_row( $result );
    Il semble que le select extrait les données dans le tableau $row.
    Mais quelle est la taille max de ce tableau?
    Si j'ai 100 000 lignes dans une table, MySQL ne va pas tout extraire en mémoire??
    J'ai regardé dans la doc du site php mais j'ai rien trouvé. :
    Bonne journée à tous les phpiens!

  2. #2
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    $result est une resource mysql, donc il n'a pas la taille d'un tableau. Ca correspond a des données qui sont dans la RAM du serveur et tu y accede avec mysql_fetch_row... donc oui, il met tout en memoire... a toi de faire des LIMIT debut, fin si tu veux qu'une portion du resultat, ou de filtrer les champs, etc...

    si tu veux le nombre de lignes retournées, il faut faire : mysql_num_rows($result)

  3. #3
    Membre éclairé
    Avatar de genova
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 487
    Points : 790
    Points
    790
    Par défaut
    Non il ne met pas tout en mémoire, mysql_fetch_array() lit les lignes de te requète une par une en déplacant une pointeur dans la mémoire alouée au résultat de la requète, mais ce n'est pas la même mémoire utilisée par PHP.

    Tant que tu lis ton tableau ligne par ligne ça va.
    Testez le forum Fire Soft Board, un forum libre, gratuit et français.

    Système de template de phpBB - Lisez la FAQ PHP avant toute question si vous débuttez en PHP.

  4. #4
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    ca ne fait pas partie des 8Mo alloué a PHP alors ? c'est une memoire attribuée coté mysql ? quelle a sa limite en général ? c'est bien une memoire par utilisateur j'espere, et pas une memoire partagée ;o)

    ca m'interesserait aussi de savoir

  5. #5
    Membre éclairé
    Avatar de genova
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 487
    Points : 790
    Points
    790
    Par défaut
    Je n'en suis pas sur à 100% mais normalement la mémoire alouée par MySQL est indépendante de celle allouée pour PHP
    Testez le forum Fire Soft Board, un forum libre, gratuit et français.

    Système de template de phpBB - Lisez la FAQ PHP avant toute question si vous débuttez en PHP.

  6. #6
    Membre actif Avatar de Jean_Benoit
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 499
    Points : 234
    Points
    234
    Par défaut [MySQL/PHP $rows]
    Je vais tenter une manip en écrivant une procédure mysql_php.
    Je vais insérer 1000 lignes dans une table test, puis faire un select.
    Et ainsi de suite.
    Je verrai bien à partir de quand ça bloque, si ça bloque.
    Mais pour ça il me faut MySQL 5, je crois, car j'ai wamp5 qui installe la 4.13a et je ne suis pas sûr, mais dans la 4 on n'a pas les procédures??
    Dur dur d'être un newbie :o

  7. #7
    Membre éclairé
    Avatar de genova
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 487
    Points : 790
    Points
    790
    Par défaut
    MySQL5 est payant
    Testez le forum Fire Soft Board, un forum libre, gratuit et français.

    Système de template de phpBB - Lisez la FAQ PHP avant toute question si vous débuttez en PHP.

  8. #8
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    si MySQL retourne un résultat qui fait 8Mo, c'est PHP qui stocke ce résultat et si tu a une limite de mémoire avec PHP ça possera un problème

  9. #9
    Membre actif Avatar de Jean_Benoit
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 499
    Points : 234
    Points
    234
    Par défaut [MySQL-PHP limite de fetch]
    Ok merci pour l'info. Il faudra que je voie si on peut flusher la mémoire PHP des enregistrements déjà traités. Mais mon bouquin PHP n'arrive que dans 2 semaines, d'ici là je vais bosser sur les pages dynamiques et tester OLAP.
    Allélébleux!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SGBD] PHP MySQL timestamp
    Par alexmorel dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 16/05/2006, 18h26
  2. [SGBD] PHP/mysql additioner des variables
    Par picsoun dans le forum SQL Procédural
    Réponses: 8
    Dernier message: 20/03/2006, 03h49
  3. [SGBD] [PHP/mySQL] Délestage
    Par Funraill.net dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 29/10/2005, 12h49
  4. [SGBD] [php-mysql]
    Par oyigit dans le forum SQL Procédural
    Réponses: 9
    Dernier message: 14/10/2005, 14h46
  5. [SGBD] [php/mySql] Récuperation numéro de l'erreur
    Par fab22montpellier dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 14/09/2005, 11h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo