web-dev-qa-db-fra.com

Différence entre clé, clé primaire, clé unique et index dans MySQL

Quand devrais-je utiliser KEY, PRIMARY KEY, UNIQUE KEY et INDEX?

235
HELP

KEY et INDEX sont des synonymes dans MySQL. Ils veulent dire la même chose. Dans les bases de données, vous utiliseriez index pour améliorer la vitesse de récupération des données. Un index est généralement créé sur les colonnes utilisées dans les clauses JOIN, WHERE et ORDER BY.

Imaginez que vous avez une table appelée users et que vous souhaitez rechercher tous les utilisateurs portant le nom de famille 'Smith'. Sans index, la base de données devrait parcourir tous les enregistrements de la table: c'est lent, car plus il y a d'enregistrements dans votre base de données, plus il faut travailler pour trouver le résultat. D'autre part, un index aidera la base de données à accéder rapidement aux pages pertinentes où les enregistrements 'Smith' sont conservés. Ceci est très similaire à la façon dont nous, humains, parcourons un répertoire du répertoire pour trouver une personne par son nom de famille: nous ne commençons pas à parcourir le répertoire de bout en bout, tant que nous insérons les informations dans un ordre que nous pouvons utilisez pour passer rapidement aux pages 'S'.

Les clés primaires et les clés uniques sont similaires. Une clé primaire est une colonne, ou une combinaison de colonnes, pouvant identifier une ligne de manière unique. C'est un cas particulier de clé unique . Une table peut avoir au plus une clé primaire, mais plusieurs clés uniques. Lorsque vous spécifiez une clé unique sur une colonne, deux lignes distinctes d'une table ne peuvent avoir la même valeur.

Notez également que les colonnes définies en tant que clés primaires ou clés uniques sont automatiquement indexées dans MySQL.

287
Daniel Vassallo

KEY et INDEX sont des synonymes.

Vous devez ajouter un index lorsque les mesures de performance et EXPLAIN vous indiquent que la requête est inefficace en raison d'un index manquant. L'ajout d'un index peut améliorer les performances des requêtes (mais peut également ralentir les modifications apportées à la table).

Vous devez utiliser UNIQUE lorsque vous souhaitez que les valeurs de cette colonne (ou de ces colonnes) soient uniques, de sorte que les tentatives d'insertion de valeurs en double génèrent une erreur.

Une clé primaire est à la fois une contrainte unique et implique également que la colonne n'est pas NULL. Il est utilisé pour donner une identité à chaque ligne. Cela peut être utile pour rejoindre une autre table via une contrainte de clé étrangère. Bien qu'il ne soit pas nécessaire pour une table d'avoir une clé primaire, c'est généralement une bonne idée.

54
Mark Byers

La clé primaire n'autorise pas les valeurs NULL, mais la clé unique autorise les valeurs NULL.

Nous pouvons déclarer n seul clé primaire dans une table, mais une table peut avoir multiple clés uniques (affectation de colonne).

43
Er.Gaurav singh

PRIMARY KEY ET UNIQUE KEY sont similaires sauf qu'il a des fonctions différentes. La clé primaire rend la ligne de la table unique (c'est-à-dire qu'il ne peut pas y avoir 2 lignes avec la même clé). Vous ne pouvez avoir qu'une seule clé primaire dans une table de base de données.

Une clé unique rend unique la colonne de table dans une ligne de table (c'est-à-dire qu'aucune ligne de table ne peut avoir la même valeur exacte). Vous pouvez avoir plus d'une colonne de table de clé unique (contrairement à la clé primaire qui signifie qu'une seule colonne de table est unique).

INDEX crée également un caractère unique. MySQL (exemple) créera une table d'indexation pour la colonne indexée. De cette façon, il est plus facile de récupérer la valeur de la ligne de la table lorsque la requête est interrogée sur cette colonne de table indexée. L'inconvénient est que si vous effectuez de nombreuses mises à jour/suppression/création, MySQL doit gérer les tables d'indexation (ce qui peut constituer un goulot d'étranglement des performances).

J'espère que cela t'aides.

16
Buhake Sindi

Clés uniques: les colonnes dans lesquelles deux lignes ne sont pas similaires

Clé primaire: Collection d'un nombre minimum de colonnes pouvant identifier de manière unique chaque ligne d'une table (c'est-à-dire, aucune ligne n'est similaire dans toutes les colonnes constituant la clé primaire). Il peut y avoir plus d'une clé primaire dans une table. S'il existe une clé unique, il s'agit de la clé primaire (et non "la" clé primaire) de la table. S'il n'existe pas de clé unique, plusieurs valeurs de colonne sont nécessaires pour identifier une ligne telle que (prénom, nom, prénom, nom du père, nom de la mère) puissent dans certaines tables constituer une clé primaire.

Index: utilisé pour optimiser les requêtes. Si vous allez chercher ou trier les résultats plusieurs fois sur la base d'une colonne (par exemple, la plupart des gens vont chercher les étudiants par nom et non par leur numéro de rôle), il peut être optimisé si les valeurs de la colonne sont toutes " indexé "par exemple avec un algorithme d'arbre binaire.

10
Ashwini Dhekane

Clé primaire - nous ne pouvons mettre qu'une seule clé primaire sur une table dans une table et nous ne pouvons pas laisser cette colonne vide lorsque nous entrons les valeurs dans la table.

nique Key - nous pouvons mettre plusieurs clés uniques sur une table et nous pouvons laisser cette colonne vide lorsque nous entrons les valeurs dans la table. colonne prend des valeurs uniques (pas identiques) lorsque nous avons appliqué une clé primaire et unique.

7
VIKASH

La clé primaire est utilisée pour travailler avec différentes tables. C'est la base des bases de données relationnelles. Si vous avez une base de données de livres, il est préférable de créer 2 tableaux - 1) livres et 2) auteurs avec la clé primaire INT "id". Ensuite, vous utilisez id dans les livres au lieu du nom de l'auteur.

La clé unique est utilisée si vous ne voulez pas que des entrées soient répétées. Par exemple, vous pouvez avoir un titre dans votre tableau et vous voulez vous assurer qu'il n'y a qu'une entrée pour chaque titre.

5
irudyak

Clé unique:

  1. Plus d'une valeur peut être nulle.
  2. Deux nuplets ne peuvent avoir les mêmes valeurs dans une clé unique.
  3. Une ou plusieurs clés uniques peuvent être combinées pour former une clé primaire, mais pas l'inverse.

clé primaire

  1. Peut contenir plus d'une clé unique.
  2. Représente uniquement un tuple.
2
Pritam Banerjee