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

Outils MySQL Discussion :

[Windows]Mesure du temps d'insertion de deux cents mille lignes en MySQL


Sujet :

Outils MySQL

  1. #1
    Membre expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Points : 3 001
    Points
    3 001
    Par défaut [Windows]Mesure du temps d'insertion de deux cents mille lignes en MySQL
    Bonjour,

    Je réalise actuellement un comparatif entre différents temps d'accès à des données sur le serveur MySQL.

    Je cherche actuellement à mesurer l'insertion de 200.000 lignes de données dans une base mysql via la console.

    Je pensais me connecter sur la console et lancer ces scripts :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DOS>mysql -u test -p test -b
    mysql>use test;
    mysql>source d:/monfichier.sql;
    Ce code fonctionne, sauf que le retour ce fait de la façon suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    mysql> source d:/mon_fichier.sql;
    Query OK, 1 row affected (0.03 sec)
    Query OK, 1 row affected (0.02 sec)
    Query OK, 1 row affected (0.03 sec)
    Query OK, 1 row affected (0.03 sec)
    Query OK, 1 row affected (0.03 sec)
    Query OK, 1 row affected (0.02 sec)
    Malheureusement, je ne souhaite pas le temps de chaque insertion, mais le temps de l'execution globale. Quelqu'un aurait une idée me permettant de mesurer ce temps total ?

    Pour information je suis en mysql 5.0, et sur un Windows XP, je passe mon script via "l'émulation" de console DOS et la console mysql.

    Merci de votre aide, car là je sèche un peu !

    PS : J'ai bien pensé à récupérer le contenu total mais l'incertitude sur le centième de seconde par ligne insérée est trop grande. En effet, avec 200.000 lignes, la répétabilité de l'incertitude de ma mesure serait de 200000 * 0,01 = 2000 secondes, soit 33 minutes et 20 secondes. Et un test comparatif déterminant que l'insertion de 200000 lignes durent 1h20 + ou - 33 minutes est assez ridicule !
    Alexandre Tranchant
    Chef de projet AMO pour le Cerema.
    Retrouvez mes articles sur PHP et Symfony

  2. #2
    Membre expérimenté Avatar de davcha
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 258
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 258
    Points : 1 539
    Points
    1 539
    Par défaut
    As-tu essayé ceci ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    INSERT INTO table
    (champ1,champ2,...)
    VALUES
    (champ1,champ2,...),
    (champ1,champ2,...),
    (champ1,champ2,...),
    (champ1,champ2,...),
    (champ1,champ2,...),
    (champ1,champ2,...),
    (champ1,champ2,...),
    (champ1,champ2,...),
    (champ1,champ2,...),
    (champ1,champ2,...),
    (champ1,champ2,...),
    ....

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357
    Par défaut
    Bonjour,

    Si tu peux obtenir un fichier au format csv, utilise 'LOAD DATA INFILE ....'. C'est le plus rapide, ça ne devrait pas prendre plus de quelques secondes.

  4. #4
    Membre expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Points : 3 001
    Points
    3 001
    Par défaut
    Je vous remercie, je le sais bien. Je vais mesurer ces temps là également. (Je conseille d'ailleurs souvent l'usage de LOAD INTO ...) Le but est de faire un comparatif pour extraire les temps dans le but d'un article sur MySQL, les connexion php natives, les connexions consoles, et les connexions via PDO.

    Mais je veux mesurer CE traitement qui n'est justement pas optimiser

    Mais merci de vous pencher sur mon soucis.
    Alexandre Tranchant
    Chef de projet AMO pour le Cerema.
    Retrouvez mes articles sur PHP et Symfony

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357
    Par défaut
    Tu peux ajouter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select unix_timestamp() into outfile .....
    au début et à la fin de ton fichier sql

  6. #6
    Membre expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Points : 3 001
    Points
    3 001
    Par défaut
    Oui je n'y ai jamais pensé ! Merci beaucoup de l'astuce, je vais partir sur cette voie.
    Alexandre Tranchant
    Chef de projet AMO pour le Cerema.
    Retrouvez mes articles sur PHP et Symfony

  7. #7
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Tu pourrais aussi utiliser des outils de mesure de performance comme Quest benchmark factory ou Sysbench...
    Pensez au bouton

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

Discussions similaires

  1. [AC-2010] Insertion dans deux champs en même temps
    Par birhu dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 07/07/2013, 11h08
  2. Réponses: 1
    Dernier message: 13/04/2011, 14h28
  3. Insertion dans deux Tables en même temps
    Par hajoura89 dans le forum Développement Web en Java
    Réponses: 7
    Dernier message: 19/08/2010, 00h10
  4. [MySQL] insertion dans deux tab au méme temp
    Par marwen86 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 09/03/2010, 21h11
  5. Insert dans deux tables en meme temps?
    Par radzar dans le forum Langage SQL
    Réponses: 3
    Dernier message: 11/04/2008, 11h33

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