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

Requêtes MySQL Discussion :

Lenteur des INSERT sur une table InnoDB


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 577
    Par défaut Lenteur des INSERT sur une table InnoDB
    Bonjour,

    pour profiter pleinement des clés étrangères, je viens de passer toutes les tables d'une base de données en ENGINE=InnoDB.
    Or je constate que maintenant les requêtes de type INSERT sur mes tables sont vraiment + lentes.
    A titre d'exemple, j'ai un script php qui prend environ 1 seconde pour faire 600 INSERT dans une table MyISAM, alors qu'il prend 40 secondes si je la passe en InnoDB (une seule foreign key) !!!

    Qu'en pensez-vous ??

    Merci par avance.
    @+

  2. #2
    Membre chevronné Avatar de nounetmasque
    Inscrit en
    Janvier 2003
    Messages
    494
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 494
    Par défaut
    Si les clés étrangères sont toujours actives durant l'exécution du script INSERT cela semble logique puisque pour chaque ligne insérée, MySQL vérifie la validité de cette contrainte d'intégrité.

    Je te conseille de désactiver l'ensemble de tes clés étrangères et à la fin de l'ordre INSERT de les activer de nouveau.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 577
    Par défaut
    Salut,
    mais dans ce cas-là qui vérifiera la cohérence de mon insert ??

  4. #4
    Membre chevronné Avatar de nounetmasque
    Inscrit en
    Janvier 2003
    Messages
    494
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 494
    Par défaut
    Quand tu activeras tes clés étrangères à la fin de ton insert, MySQL se chargera de vérifier la cohérence. Si ce n'est pas le cas, une erreur remontera et les clés étrangères ne seront pas remises en place.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 577
    Par défaut
    Bonjour,

    j'ai fait un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SET FOREIGN_KEY_CHECKS = 0;
    mais cela ne change strictement rien à la lenteur de mes insert !

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 010
    Billets dans le blog
    6
    Par défaut
    MySQL n'a jamais été un foudre de guerre en matière de transaction. C'est même son point faible. Et particulièrement lors des transactions concurrentes !

    Si vous voulez des performances avec MySQL, il faudra compenser par le matériel ou bien utiliser un SGBDR bien conçu pour le transactionnel comme PostGreSQL ou SQL Server...

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. Réponses: 4
    Dernier message: 04/02/2009, 19h09
  2. journalisation des updates, inserts sur une table
    Par philou28 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 28/04/2007, 16h07
  3. [ASE][T-SQL]droits des user sur une table...
    Par arona dans le forum Sybase
    Réponses: 3
    Dernier message: 11/05/2006, 21h48
  4. Ordre de sélection des lignes sur une table DB2
    Par Pierre Formosa dans le forum DB2
    Réponses: 1
    Dernier message: 26/04/2006, 20h03
  5. Modifier une contrainte sur une table InnoDb
    Par DomZZZ dans le forum Outils
    Réponses: 1
    Dernier message: 13/03/2006, 14h40

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