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 :

index


Sujet :

Requêtes MySQL

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    519
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 519
    Points : 298
    Points
    298
    Par défaut index
    Bonjour,

    ma table a une 10aines de champs.
    en genrale, les SELECT se font sur un ou deux des champs.
    Je voudrais savoir si c'est utile de faire un INDEX.
    Si oui, a partir de combien d'enregistrements ca devient interessant (voir necessaire).

    merci !

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

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

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 903
    Points : 6 027
    Points
    6 027
    Par défaut
    Il est toujours utile de créer un ou des index, c'est même une très bonne habitude.....

    Le monde de l'informatique est truffé de BdD montées à la va-vite avec des "on verra + tard pour améliorer". Le truc dort dans son coin pendant des années, puis 1 jour on s'aperçoit que ça rame.

    Entre temps, les créateurs sont partis bien sûr.

    Et il suffit parfois d'ajouter 1 ou 2 index pour retrouver des perfs normales.

    Alors, autant créer ces index en même temps que la BdD, ça permet de dormir tranquille.
    "Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
    -----------------------
    Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
    Usus magister est optimus

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    519
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 519
    Points : 298
    Points
    298
    Par défaut merci
    merci !

    punaise, moi qui esperait remettre ca a plus tard 8)

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    519
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 519
    Points : 298
    Points
    298
    Par défaut juste ...
    juste une petite precision...

    quand on a un index, la requette SELECT __ WHERE __ se fait de la meme facon ? ou pas ?

    il faut faire un WHERE index_champ=XXX ou un WHERE champ=XXX ?

  5. #5
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 903
    Points : 6 027
    Points
    6 027
    Par défaut
    Les index sont juste des listes de pointeurs, on ne les référence pas dans un ordre SQL.
    "Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
    -----------------------
    Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
    Usus magister est optimus

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    519
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 519
    Points : 298
    Points
    298
    Par défaut merci
    c'est donc transparent.
    merci.

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    519
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 519
    Points : 298
    Points
    298
    Par défaut index
    toujours sur le sujet des INDEX.

    SELECT param FROM matable WHERE a1=XX AND a2= YYYYY;

    a1 est un INT sur lequel il y a un INDEX.
    a2 est un varchar(50)

    il n'y a pas de condition d'unicite sur le couple a1,a2 mais a1 est UNIQUE.
    (donc le couple aussi, mais elle n'est pas explicite)

    si je mets a2 en index, est-ce que ca va accelerer la recherche.
    Ou alors, comme le a1=XX est en premier dans la requete et qu'il y a deja un INDEX sur a1 et qu'il est UNIQUE. ben, ca changera rien de mettre un INDEX sur a2.
    oui ?

    oula la, pas tres clair ..
    Tout ca pour eviter un INDEX de plus qui risque d'etre lourd pour l'ecriture ...

  8. #8
    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 Re: index
    Citation Envoyé par bibile
    si je mets a2 en index, est-ce que ca va accelerer la recherche.
    Dans certains cas oui, parce que MySQL va utiliser l'index le plus restrictif (celui qui compte le moins de lignes).
    Par contre la solution la plus efficace est de mettre un index sur (a1, a2). Dans ce cas-là les lignes recherchées seront trouvées directement dans l'index.

    Citation Envoyé par bibile
    Tout ca pour eviter un INDEX de plus qui risque d'etre lourd pour l'ecriture ...
    A toi de considérer le ratio écritures/lectures et de privilégier l'un ou l'autre en mettant des index ou non...
    Pensez au bouton

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    519
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 519
    Points : 298
    Points
    298
    Par défaut merci
    clair en precis !

    merci,

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

Discussions similaires

  1. Message 'Duplicate index entry'
    Par Poulou dans le forum Administration
    Réponses: 13
    Dernier message: 04/05/2004, 14h57
  2. Index n'est pas a jour
    Par touhami dans le forum Paradox
    Réponses: 5
    Dernier message: 11/12/2002, 14h47
  3. [Technique] Intérêt des index
    Par ddams dans le forum Décisions SGBD
    Réponses: 10
    Dernier message: 04/11/2002, 15h11
  4. [Technique] Index, comment font les moteurs de recherche ?
    Par bat dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 25/10/2002, 15h41
  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