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 :

Temps de requete trop long


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Homme Profil pro
    Etudiant(IUT info)/Stagiaire
    Inscrit en
    Mai 2013
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant(IUT info)/Stagiaire

    Informations forums :
    Inscription : Mai 2013
    Messages : 49
    Points : 47
    Points
    47
    Par défaut Temps de requete trop long
    Bonjour à toutes et à tous !

    Voila, je suis étudiant en 2ème année d'IUT info, donc restez indulgent avec moi ^^

    Voila, je manipule une base de données de plusieurs centaines de milliers de lignes. Et, je commence à devoir penser à l'optimisation de mon temps de traitement....
    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
    16
     
    // *** 0.11 secondes. ***
     
    	$arrStatutTotal = array();
    	$statutTotal = array();
    	$queryTotal = 	"SELECT Type 
    				  FROM candidat c,trace t 
    				  WHERE c.Identifiant_Cand = t.Identifiant_Cand 
    				  AND Type IN
    								(SELECT Type 
    								 FROM candidat c, trace t 
    								 WHERE c.Identifiant_Cand = t.Identifiant_Cand 
    								 AND Resultat_Reponse LIKE 'incorrect%')";
    	$resuTotal = mysqli_query($co,$queryTotal) or die (mysqli_error($co)." queryTotal");
     
    //*** 13.1 secondes. ***
    Avant la requete je suis à 0.11s de temps d'execution, apres je suis à plus de 13s.... C'est vraiment problématique. J'aimerais qu'on puisse m'expliquer comment marche le temps des requêtes, et comment obtenir le même résultat que cette requete, en prennant vraiment moins de temps.

    Je vous remercie de votre aide !

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 016
    Points : 23 705
    Points
    23 705
    Par défaut
    Bonjour,

    Je ne vois pas ce que vous apporte la sous-requête, si ce n'est du temps de traitement supplémentaire .
    La requête suivante ne suffit-elle pas ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Type 
    FROM candidat c
    INNER JOIN trace t ON c.Identifiant_Cand = t.Identifiant_Cand 
    WHERE Resultat_Reponse LIKE 'incorrect%'
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  3. #3
    Membre du Club
    Homme Profil pro
    Etudiant(IUT info)/Stagiaire
    Inscrit en
    Mai 2013
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant(IUT info)/Stagiaire

    Informations forums :
    Inscription : Mai 2013
    Messages : 49
    Points : 47
    Points
    47
    Par défaut
    Inner join ?? Je vais me documenté dessus
    Mais j'ai fait ma sous requete pour dire tous les types possédant une erreur. Mais c'est sur que si inner join fait ce qu'il faut... Je test ca de suite Merci à toi en tout cas.

  4. #4
    Membre du Club
    Homme Profil pro
    Etudiant(IUT info)/Stagiaire
    Inscrit en
    Mai 2013
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant(IUT info)/Stagiaire

    Informations forums :
    Inscription : Mai 2013
    Messages : 49
    Points : 47
    Points
    47
    Par défaut
    Désolé du double post

    Je viens de tester ta requête. Je m'en doutais un peu, elle ne lie pas un résultat a son type. En gros, je me sers de cette requête pour un affichage en tableau.
    Ma requête donne :
    Type 1 | Type 2 | Type 3
    4% 10% 35%
    (c'est un exemple)
    Avec la tienne 100% 100% 100%
    Je continue de lire en même temps la doc sur INNER JOIN.

    En tout cas, le temps de traitement est "legerement" plus court x) Au lieu de passer ma requete a 13s je la finis a 0.35 Plus qu'a obtenir la bonne requete !

    Je passe ce sujet en résolu, merci à toi !!!!

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

Discussions similaires

  1. Temps de chargement trop long pour animation légère
    Par CharlyMops dans le forum Flash
    Réponses: 1
    Dernier message: 27/09/2006, 07h13
  2. Réponses: 5
    Dernier message: 15/09/2006, 16h58
  3. [MySQL] Problème temps d'éxécution trop long
    Par Yo. dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 13/06/2006, 14h55
  4. temp de réponse trop long
    Par maxidoove dans le forum Langage SQL
    Réponses: 6
    Dernier message: 27/10/2005, 18h24
  5. Arrêter un prog si temps de connexion trop long
    Par jakouz dans le forum Langage
    Réponses: 4
    Dernier message: 22/10/2002, 18h28

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