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

PostgreSQL Discussion :

[Projet Master2] Import de données en masse pour application statistique


Sujet :

PostgreSQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 149
    Par défaut [Projet Master2] Import de données en masse pour application statistique
    Bonjour,
    pour mon projet de fin d'étude de Master Informatique, je dois réaliser une application qui permet de charger des fichiers historiques concernant l'année 2007, sur trois départements. Il faut compter 20 000 lignes par fichier, pour 12 mois.
    12 x 3 x 20 000 je vous laisse imaginer la quantité de données à charger.
    La création de clé primaire en amont étant anarchique (et buggée ? Je précise que je ne peut rien faire à ce niveau), il arrive de retrouver plusieurs fois la meme clé sur le meme département ou d'un département à l'autre, ma clé primaire est donc composée du numéro d intervention (entier), de l'id du departement(varchar 2 caractères mais je n'ai pas défini cette limite) ainsi que d'un autre champ unique trouvé (varchar non limité).
    Au début de l'importation je ma clé primaire n'était composée que de deux champs, et je trouvai que l'importation par COPY FROM etait assez rapide malgré la quantité de données. J'ai du ajouter un troisième champ, et depuis c'est de plus en plus lent et je me trouve confronté a des timeout (max 30 sec of execution sur php).

    J'aimerai votre avis, puis-je supprimer la clé primaire ? Cela va il impacter la rapidité de mon script (en bien)? Ou dois-je créer une nouvelle clé primaire pour remplacer cette clé composite ?

    De manière plus générale, j'aimerais que vous me conseillez sur les bonne pratiques à suivre pour la mise en place et la bonne utilisation d'une telle base.

    Merci à ceux qui seront arrivés jusqu'au bout de ce message, ce fut long mais j'ai tenté de décrire au mieux le contexte de la mise en place.

  2. #2
    Membre Expert Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Par défaut
    Pour des perfs optimales, c'est mieux de ne pas avoir de clé primaire sur la table, mais attention à ne pas insérer de doublons ;-)
    La théorie, c'est quand on sait tout mais que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

    Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 149
    Par défaut
    Ah, oui je n'y avai pas pensé, il y a le risque d'insérer des doublons.
    Donc que me conseilles tu ?

    L'absence de clé primaire permet elle aussi d'améliorer les performances au niveau des COUNT ?

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

Discussions similaires

  1. importer des données excel dans une application delphi
    Par dino35 dans le forum Bases de données
    Réponses: 5
    Dernier message: 21/02/2011, 16h54
  2. Réponses: 2
    Dernier message: 18/09/2008, 08h20
  3. Réponses: 12
    Dernier message: 24/10/2007, 12h00
  4. [SQLserver2000] Lire un fichier pour importer des données
    Par cladsam dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 01/10/2007, 10h40
  5. Réponses: 4
    Dernier message: 04/05/2007, 12h58

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