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 imbriquée et index


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Par défaut requete imbriquée et index
    Bonjour,

    Je viens de m'apercevoir que pour des requetes imbriquées, il s'avère que seulement un index est déclenché .

    Par exemple avec cette requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT  DISTINCT id_num
    	FROM    UTILISATEUR
    	WHERE   nom IN (SELECT DISTINCT nom
    			FROM    OPTIONS
    			WHERE   flg_option='1' AND pays='france');
    J'ai un index sur la colonne nom de la table utilisateur et un autre sur les deux champs 'flg_option' et 'pays' de la table OPTION mais seul celui de la table UTILISATEUR est déclenché.

    Quelqu'un aurait t'il une meilleur solution que celle qui consiosterai à utiliser des curseurs ?

    merci

  2. #2
    Membre Expert Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Par défaut
    une jointure ???

  3. #3
    Membre émérite Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Par défaut
    Tu as raison merci :
    en faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT  DISTINCT id_num
    FROM    UTILISATEUR LEFT JOIN OPTIONS ON
             (UTILISATEUR.nom=OPTIONS.nom AND OPTIONS.flg_option='1' AND
                 OPTIONS.pays='france');
    resultat tres satisfaisant car la requete ne met que 2 seconde (avec un nouvel index créé sur la table OPTIONS pour les trois champs 'nom', 'flg_option' et 'pays')


  4. #4
    Membre Expert Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Par défaut
    Attention a ne pas declarer trop d'indexes, cela nuit aux performances des SGBD.

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

Discussions similaires

  1. Requete imbriquée, oui mais...
    Par zax-tfh dans le forum Requêtes
    Réponses: 6
    Dernier message: 24/03/2005, 01h48
  2. Equivalent d'une requete imbriquée ??
    Par webtheque dans le forum Requêtes
    Réponses: 8
    Dernier message: 31/08/2004, 10h07
  3. Requetes imbriquées et jointures
    Par Emile Le Tueur* dans le forum Requêtes
    Réponses: 4
    Dernier message: 31/03/2004, 23h12
  4. Requete imbriquée sur Firebird ou Interbase
    Par Thib dans le forum Bases de données
    Réponses: 2
    Dernier message: 08/03/2004, 09h00
  5. Requête imbriquée et indexes INTERBASE
    Par vadim dans le forum InterBase
    Réponses: 2
    Dernier message: 06/09/2002, 16h15

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