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

 MySQL Discussion :

Insertion Enorme dans une base de données


Sujet :

MySQL

  1. #1
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 48
    Points : 46
    Points
    46
    Par défaut Insertion Enorme dans une base de données
    Salut à tous, je suis noueau dans le forum, j'ai des fichiers de 10Mo k j dois parser et inserer dans une base de données mysql, le probleme est que pour les insertion ça prends un temps enorme de 30 minute pour un seul fichier alors que j'ai au moins 500 fichiers par session , ma configuration est : centrino duo 2 GO de RAM et 1.83 GHz CPU.
    si quelqu'un aune suggestion comment faire le truc n'hesiter pas , je creve. Merci

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 2 576
    Points
    2 576

  3. #3
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 48
    Points : 46
    Points
    46
    Par défaut
    Merci vmolines,

    les fichiers que je dois parser sont des fichiers XML avec une structure complexe, la documentatioon que tu as proposé concerne antre autres des fichiers XML avec une structure simple propre à une seule table, et similaire a la structure d'une table, ceci dit que je dois transformer encore une fois ces fichiers xml en sorte qu'ils soient d'une format simple, mais c'est une tache tres tres couteuse.

    y a t-il d'autre propositions?

  4. #4
    Membre éprouvé
    Avatar de Sivrît
    Profil pro
    Inscrit en
    Février 2006
    Messages
    953
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 953
    Points : 1 249
    Points
    1 249
    Par défaut
    En terme de vitesse je crois qu'il n'y aura pas mieux que de sortir du csv et passer par "LOAD DATA". Sinon il faut passer par des INSERT à valeurs multiples. Avec JDBC ça semble mieux que des prepared statement en batch donc ça devrait déjà être pas mal.

    Peut-être aussi supprimer ou désactiver les indexes en s'inspirant de ce que fait mysqldump (à condition par exemple que les données à insérer ne viole pas une contrainte d'unicité par exemple).

    Avec InnoDb il est aussi possible de désactiver l'auto-commit pour faire des transactions d'une taille décente (un instruction est trop peu si ce n'est pas un très gros INSERT), sans pour autant en faire des trop grosse. Enfin si c'est InnoDb il faudrait trier les éléments par clefs primaire, les donner dans l'ordre pouvant beaucoup aider.

    En espérant que ça aidera.

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

Discussions similaires

  1. insertion fichier dans une base de données MYSQL
    Par Globolite dans le forum Requêtes
    Réponses: 5
    Dernier message: 23/01/2013, 19h15
  2. [MySQL] Insertion multiple dans une base de données MYSQL
    Par bryanmohamet dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 14/11/2010, 23h49
  3. insertion automatique dans une base de données
    Par sion76 dans le forum SQL Procédural
    Réponses: 0
    Dernier message: 28/07/2009, 16h46
  4. [HTML] Probleme d'insertion HTML dans une base de données MySQL
    Par tarzanjane dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 28/09/2006, 13h12
  5. [Conception] insertion sql en php, dans une base de donnée ?
    Par artotal dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 24/10/2005, 05h34

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