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 :

PRIMARY KEY - UNIQUE - INDEX


Sujet :

Requêtes MySQL

  1. #1
    Membre régulier
    Inscrit en
    Avril 2005
    Messages
    300
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 300
    Points : 93
    Points
    93
    Par défaut PRIMARY KEY - UNIQUE - INDEX
    Bonsoir,

    J'ai vraiment besoin d'un petit coup de pouce sur ces trois "options".

    Voila l'idée que je me suis forgé:
    Clé primaire: identifie de manière unique un enregistrement (INDEX + UNIQUE). La différence avec Unique c'est qu'il peut englober plusieurs champs et donc la clé est relative à l'ensemble de ces champs.

    Unique: permet de rendre spécifiquement un champ unique, pour éviter les doublons. Par la même occasion un champ unique sera indexé.

    Index: permet d'indexer un champ pour améliorer la vitesse des recherches sur ce même champ. En revanche la vitesse d'insertion ou de modification sera diminuée.
    Seulement je ne suis absolument pas certain de tout ça !
    Par exemple (entre autre..) concernant le PRIMARY, est-il indexé ?
    (je demande cela car je me suis amusé à fouiller sur EasyPHP ou plutôt PHPMyAdmin et sa base de données "mysql" dans la table "db", plusieurs champ sont tenu pour PRIMARY, mais parmis ces champs, il y en a un qui est repris et indiqué comme "INDEX" !!! Donc là j'avoue ne pas tout comprendre...)

    Je suis preneur de toutes explications que vous voudrez bien m'apporter.
    Merci.

  2. #2
    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
    Salut,

    C'est tout à fait ça à part que la différence entre une clé primaire et une contrainte UNIQUE est que les colonnes composant la primary key doivent être NOT NULL (si ce n'est pas déclaré MySQL le rajoute implicitement).

    Un index recouvrant toutes les colonnes de la clé primaire se voit aussi créé implicitement. Dans l'exemple de la table db que tu cites, il y a donc un index multiple généré automatiquement à cause de la contrainte de clé primaire qui porte sur plusieurs colonnes, et un index simple créé de manière explicite sur une seule de ces colonnes.
    Pensez au bouton

  3. #3
    Membre régulier
    Inscrit en
    Avril 2005
    Messages
    300
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 300
    Points : 93
    Points
    93
    Par défaut
    Très bien ! Impeccable !
    Merci pour ces informations rapides et claires ! Merci.

  4. #4
    Membre régulier
    Inscrit en
    Avril 2005
    Messages
    300
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 300
    Points : 93
    Points
    93
    Par défaut
    Je me permets de revenir sur mon post.

    En effet, si je souhaite dans une table plusieurs champ en index, il me faudra les mettres en index un part un et non les sélectionner ensemble pour les mettre en index ? (c'est bien cela)

  5. #5
    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
    Probablement, oui.
    Sauf si la plupart de tes requêtes portent sur les deux colonnes à la fois dans leur clause WHERE, à ce moment-là un index double sera certainement plus efficace.
    Pensez au bouton

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 25/11/2010, 11h52
  2. Réponses: 8
    Dernier message: 14/12/2009, 09h10
  3. Une histoire d'index et de primary key
    Par Daily dans le forum Administration
    Réponses: 7
    Dernier message: 22/06/2007, 17h14
  4. INDEX utilisé par une Primary Key
    Par Wurlitzer dans le forum Oracle
    Réponses: 2
    Dernier message: 29/06/2006, 11h42
  5. BDD, r-a-z index et indice primary key ?
    Par lord_paco dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 11/07/2003, 10h24

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