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

Langage PHP Discussion :

[Tableaux] Taille maximale d'un tableau


Sujet :

Langage PHP

  1. #1
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 887
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 887
    Points : 16 320
    Points
    16 320
    Par défaut [Tableaux] Taille maximale d'un tableau
    Hello,

    J'ai une table qui comporte + de 600 000 enregistrements.
    Dans le cadre de l'allégement de cette table, non pas en supprimant des enregistrements mais en réorganisant la structure et donc le stockage des données, j'ai besoin de sélectionner tous les enregistrements et les mettre dans un tableau PHP.

    Après tests, il s'avère que mon script ne s'exécute pas entre 66 000 enregistrements et 72 000 enregistrements.

    Ma question est donc :

    Combien de colonnes maximum un tableau PHP peut comporter ?
    Et s'il est à deux dimensions ?

    Pour info, je fais un truc dans ce style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $i = 0;
    $t = array();
     
    while($maboucle){
      $t[$i]['enregistrement'] = $monenregistrement;
      $i++;
    }
    Pour rappel, mon script fonctionne lorsque je mets un LIMIT 0,66000 dans ma requête.

    J'ai en outre essayé d'augmenter le temps d'exécution maximal autorisé ainsi que la mémoire grâce à ini_set().

    Merci pour votre aide !

    Edit :

    J'ai oublié de préciser que le script continue bien de tourner si je mets plus de LIMIT 0,72000 mais que je n'affecte pas les enregistrements dans un tableau.

  2. #2
    Membre averti Avatar de Space Cowboy
    Homme Profil pro
    chomeur
    Inscrit en
    Avril 2005
    Messages
    496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Avril 2005
    Messages : 496
    Points : 401
    Points
    401
    Par défaut
    Trouve une meilleur méthode ... Ca c'est la méthode bourrin.

  3. #3
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Citation Envoyé par Bisûnûrs
    Hello,

    J'ai une table qui comporte + de 600 000 enregistrements.
    Dans le cadre de l'allégement de cette table, non pas en supprimant des enregistrements mais en réorganisant la structure et donc le stockage des données, j'ai besoin de sélectionner tous les enregistrements et les mettre dans un tableau PHP.
    Bonjour,

    Pourquoi ce besoin ?
    Parce qu'une limite de cet ordre de grandeur ne m'étonnes pas plus que ça.
    Peut-être dois-tu revoir ta stratégie de migration...

  4. #4
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 887
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 887
    Points : 16 320
    Points
    16 320
    Par défaut
    Citation Envoyé par jml94
    Bonjour,

    Pourquoi ce besoin ?
    Parce qu'une limite de cet ordre de grandeur ne m'étonnes pas plus que ça.
    Peut-être dois-tu revoir ta stratégie de migration...
    En gros, c'est une table des tâches faites sur les commandes et il y a un enregistrement par tâche.
    Ce que je veux faire, c'est créer un enregistrement par commande avec toutes les tâches de cette commande dans un seul champ mais différenciées par du XML.
    Donc je sélectionne toutes les tâches de la table, je les mets dans un tableau, je constuis mon XML avec les valeurs pour chaque commande et je réinsère dans une nouvelle table ces nouvelles valeurs.

    Pas de problème quand je fais un LIMIT 0,50000.


    Mais bon ...

    Après de nombreux tests, et après avoir augmenté la mémoire jusqu'à 512M pour l'exécution de ce script, ça passait jusqu'à 300 000. Il apparaît donc que ça vient plus d'un problème de mémoire et seulement je pensais que PHP allait générer une erreur dans le cas où il n'en ait pas assez, comme pour le max_execution_time.

    Bref, la solution bien que différente de la question originelle, n'empêche pas mon désir d'avoir une réponse à cette dernière.

    Merci quand même de vous être penché sur mon problème. =)

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

Discussions similaires

  1. LV 2011 : taille maximale d'un tableau 1D
    Par sooyung dans le forum LabVIEW
    Réponses: 1
    Dernier message: 09/06/2015, 21h50
  2. Taille maximale d'un tableau de char
    Par ickis69 dans le forum Débuter
    Réponses: 33
    Dernier message: 06/04/2012, 10h38
  3. [XHTML 1.0] Taille maximale d'un tableau
    Par ne2sbeal dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 05/03/2010, 11h23
  4. [Tableaux] Taille maximale d'un tableau
    Par estacado dans le forum Langage
    Réponses: 7
    Dernier message: 25/07/2007, 21h20
  5. [langage] taille maximale d'un tableau ?
    Par Jasmine80 dans le forum Langage
    Réponses: 10
    Dernier message: 10/11/2006, 09h41

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