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

Symfony PHP Discussion :

optimiser le code parcourant une table et executant des appels a la base mysql [1.x]


Sujet :

Symfony PHP

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2008
    Messages : 176
    Par défaut optimiser le code parcourant une table et executant des appels a la base mysql
    bonjour
    j'ai une table de prés de 20000 ligne stocké dans une variable php, cette table est issue du résultat de la lecture d'un cvs, là aucun souci
    pour insérer cette table dans ma base de données, j'ai fait une boucle (for...) qui là parcoure et pour chaque ligne lance le script d'insertion.
    Là je me demandé si c'est pas possible de faire autrement (genre utiliser un buffer)

  2. #2
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    La réponse n'est pas simple et je ne suis pas sur que tu aies posté dans le bon forum.

    Donc je vais faire des présupposés, qui pourraient être faux :
    • tu travailles avec symfony.
    • tu utilises doctrine (éventuellement propel) et tu souhaites absolument garder une indépendance total avec la base de données (pour en changer sans avoir à toucher le code).


    A partir de là, il n'y a pas des centaines de possibilités.

    La tiennes, lecture séquentiel des enregistrements dans une boucle, création d'un enregistrement puis sauvegarde est très proche d'être la plus optimisée. Tu pourrais, peut-être gagner un peu en regroupant les enregistrements dans une transaction, les enregistrements étant alors traités par lots par le serveur, mais je ne sais pas si le gain de performance sera énorme, en effet, il faudrait savoir si l'enregistrement d'une ligne sur le serveur de la base de données est plus ou moins rapide que la génération de la ligne par php, si le goulot (et je crains bien qu'il soit là) est la vitesse de création d'un enregistrement sous php (surtout avec une couche d'abstraction), dans ce cas, gagner sur le traitement par la base de donnée ne sera pas probant. D'autant que tu ne pourras pas traiter les 20.000 enregistrement dans une transaction, tu vas donc devoir faire tourner deux boucles, une pour le parcours de la table, l'autre, à l'intérieur de la première, pour enregistrer par paquet de lignes, donc du code et des tests supplémentaires qui vont, eux aussi, bouffer le gain obtenu par les transactions.

    Maintenant, si je me suis trompé dans mes présupposés, il y a alors d'autres solutions.

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2008
    Messages : 176
    Par défaut
    Merci pour tes éclaircissement

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

Discussions similaires

  1. [NASM] Optimiser le code d'une droite
    Par powerpsy dans le forum Assembleur
    Réponses: 1
    Dernier message: 28/04/2006, 23h27
  2. Optimisation du code dans une page JSP
    Par nikalkal dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 27/04/2006, 15h58
  3. [ SQL - proc stockée ] optimisation du code parcours curseur
    Par luimême dans le forum Langage SQL
    Réponses: 1
    Dernier message: 06/10/2005, 16h20
  4. optimiser le code d'une fonction
    Par yanis97 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 15/07/2005, 08h41
  5. [CODE] Purger une table ?
    Par Roi dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 29/09/2003, 16h07

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