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 :

Requete SQL Anormalement lente


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 25
    Par défaut Requete SQL Anormalement lente
    Bonjour !
    J'ai une table catalogue qui contient une liste de DVD avec 3000 entrées, une clef primaire sur l'id de la table et plusieurs tables en relation avec celle-ci.
    J'ai une autre table catégorie qui contient ma liste de catégorie.
    Et une 3eme table qui contient fait la "jointure" entre les catégories & les DVD car un DVD peut faire partie de plusieurs catégories.
    Pour le moment, tout mes DVD font partie de la même catégorie et donc ma table qui fait les jointures contient le meme nombre d'entrée que ma table qui contient les DVD.
    Ma requete met 10 secondes en moyenne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT catalogue.idCatalogue, titre, duree, sortieLocation, realisateur, distributeur 
    						FROM catalogue 
    						LEFT JOIN cataloguecat
    						ON cataloguecat.idCatalogue = catalogue.idCatalogue
    						LEFT JOIN souscategorie 
    						ON souscategorie.idSousCategorie = cataloguecat.idSousCategorie
    						WHERE supprime = 0 
    						GROUP BY catalogue.idCatalogue';
    Alors que celle-ci met moins d'une demi seconde :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT catalogue.idCatalogue, titre, duree, sortieLocation, realisateur, distributeur 
    						FROM catalogue 
    						LEFT JOIN cataloguecat
    						ON cataloguecat.idCatalogue = catalogue.idCatalogue
    						LEFT JOIN souscategorie 
    						ON souscategorie.idSousCategorie = cataloguecat.idSousCategorie
    						WHERE supprime = 0 AND idCategorie = 1
    						GROUP BY catalogue.idCatalogue';
    Alors qu'elles traitent exactement le même nombre d'entrées... Je ne comprend vraiment pas pourquoi il y a cette différence...

  2. #2
    Expert confirmé
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 949
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 949
    Par défaut
    La 2ème requète met en oeuvre idCategorie qui doit probablement être une clé et donc disposer d'un index (pas facile sans la description technique des tables )

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

Discussions similaires

  1. [PDO] Requete SQL anormalement longue
    Par spifr dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 27/06/2014, 17h02
  2. [SQL Server] Requete SQL lente
    Par Ninpa dans le forum Accès aux données
    Réponses: 4
    Dernier message: 14/05/2014, 16h34
  3. [AC-2003] Requete ACCESS trop lente par rapport a SQL SERVER 2005
    Par apnw7931 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 07/03/2011, 19h48
  4. Requete SQL lente
    Par Timbermatt dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 26/05/2009, 11h40
  5. Infopath, requete SQL lente
    Par Haziel dans le forum InfoPath
    Réponses: 2
    Dernier message: 26/06/2008, 01h04

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