Quand dois - je utiliser KEY
, PRIMARY KEY
, UNIQUE KEY
et INDEX
?
Quand dois - je utiliser KEY
, PRIMARY KEY
, UNIQUE KEY
et INDEX
?
Réponses:
KEY
et INDEX
sont des synonymes dans MySQL. Ils signifient la même chose. Dans les bases de données, vous utiliseriez des 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 JOIN
, WHERE
et les ORDER BY
clauses.
Imaginez que vous ayez une table appelée users
et que vous vouliez rechercher tous les utilisateurs qui ont 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 de travail pour trouver le résultat. D'un autre côté, un index aidera la base de données à passer rapidement aux pages pertinentes où se trouvent les enregistrements «Smith». Cela ressemble beaucoup à la façon dont nous, les humains, parcourons un annuaire téléphonique pour trouver quelqu'un par le nom de famille: nous ne commençons pas à parcourir le répertoire de couverture en couverture, tant que nous insérons les informations dans un ordre que nous pouvons permet de 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, qui peut identifier de manière unique une ligne. Il s'agit d'un cas particulier de clé unique . Une table peut avoir au plus une clé primaire, mais plus d'une clé unique. Lorsque vous spécifiez une clé unique sur une colonne, deux lignes distinctes dans une table ne peuvent pas avoir la même valeur.
Notez également que les colonnes définies comme clés primaires ou clés uniques sont automatiquement indexées dans MySQL.
passengers
avec les champs suivants :, vous devez (id, first_name, last_name, age, passport_number)
normalement configurer la id
colonne comme clé primaire. Une clé primaire est automatiquement une clé unique. La principale différence est que vous ne pouvez avoir qu'une seule clé primaire sur la table et que la colonne ne peut pas contenir de NULL
valeurs. Il n'est pas nécessaire de configurer la id
colonne pour être UNIQUE
parce qu'en la définissant sur une clé primaire, elle est automatiquement garantie d'être unique ... Ensuite, vous pouvez également définir passport_number
pour UNIQUE
que pas plus d'un passager ...
NULL
sans problème dans cette colonne.
KEY et INDEX sont synonymes.
Vous devez ajouter un index lorsque les mesures de performances et EXPLAIN vous montrent 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 il peut ralentir les modifications apportées à la table).
Vous devez utiliser UNIQUE lorsque vous souhaitez limiter les valeurs de cette colonne (ou colonnes) pour qu'elles soient uniques, de sorte que les tentatives d'insertion de valeurs en double entraînent une erreur.
Une CLÉ PRIMAIRE est à la fois une contrainte unique et cela implique également que la colonne n'est PAS NULL. Il est utilisé pour donner une identité à chaque ligne. Cela peut être utile pour se joindre à une autre table via une contrainte de clé étrangère. Bien qu'il ne soit pas nécessaire qu'une table ait une CLÉ PRIMAIRE, c'est généralement une bonne idée.
La clé primaire n'autorise pas les NULL
valeurs, mais la clé unique autorise les NULL
valeurs.
Nous ne pouvons déclarer qu'une seule clé primaire dans une table, mais une table peut avoir plusieurs clés uniques (affectation de colonne).
PRIMARY KEY
ET UNIQUE KEY
sont similaires, sauf qu'ils ont des fonctions différentes. La clé primaire rend la ligne du tableau unique (c'est-à-dire qu'il ne peut pas y avoir 2 lignes avec exactement 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 la colonne de table dans une ligne de table unique (c'est-à-dire qu'aucune ligne de 2 tables ne peut avoir la même valeur exacte). Vous pouvez avoir plus d'une colonne de table de clés unique (contrairement à la clé primaire qui signifie qu'une seule colonne de table dans la table est unique).
INDEX
crée également l'unicité. 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 ligne de 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 (et cela peut être un goulot d'étranglement des performances).
J'espère que cela t'aides.
UNIQUE KEY
peut être , NULL
mais PRIMARY KEY
ne peut pas être NULL
.
Clés uniques: les colonnes dans lesquelles deux lignes ne sont pas similaires
Clé primaire: collection d'un nombre minimum de colonnes qui peut identifier de manière unique chaque ligne d'une table (c'est-à-dire qu'il n'y a pas deux lignes similaires dans toutes les colonnes constituant la clé primaire). Il peut y avoir plusieurs clés primaires dans une table. S'il existe une clé unique, c'est la clé primaire (et non "la" clé primaire) dans la table. S'il n'existe pas de clé unique, plusieurs valeurs de colonne seront nécessaires pour identifier une ligne telle que (prénom, nom, père, mère) dans certaines tables peut constituer la clé primaire.
Index: utilisé pour optimiser les requêtes. Si vous allez rechercher ou trier les résultats sur la base de certaines colonnes plusieurs fois (par exemple, la plupart des gens vont rechercher les étudiants par leur nom et non par leur numéro de rôle), alors il peut être optimisé si les valeurs de la colonne sont toutes " indexé "par exemple avec un algorithme d'arbre binaire.
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.
Clé unique - nous pouvons mettre plus d'une clé unique sur une table et nous pouvons laisser cette colonne vide lorsque nous entrons les valeurs dans la table. La colonne prend des valeurs uniques (pas les mêmes) lorsque nous avons appliqué la clé primaire et unique.
La clé primaire est utilisée pour travailler avec différentes tables. C'est le fondement 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 des auteurs.
La clé unique est utilisée si vous ne souhaitez pas que les entrées soient répétées. Par exemple, vous pouvez avoir un titre dans votre tableau de livres et vous assurer qu'il n'y a qu'une seule entrée pour chaque titre.
Clé unique:
Clé primaire