Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Relation entre la clé primaire et l'index clusterisé

Une clé primaire est une clé logique concept - c'est l'identifiant unique d'une ligne dans une table. En tant que tel, il a un tas d'attributs - il ne peut pas être nul et il doit être unique. Bien sûr, comme vous êtes susceptible de rechercher beaucoup d'enregistrements par leur identifiant unique, il serait bon d'avoir un index sur la clé primaire.

Un index clusterisé est un physique concept - c'est un index qui affecte l'ordre dans lequel les enregistrements sont stockés sur le disque. Cela en fait un index très rapide lors de l'accès aux données, bien qu'il puisse ralentir les écritures si votre clé primaire n'est pas un numéro séquentiel.

Oui, vous pouvez avoir une clé primaire sans index clusterisé - et parfois, vous voudrez peut-être (par exemple, lorsque votre clé primaire est une combinaison de clés étrangères sur une table de jointure, et que vous ne voulez pas encourir la surcharge de disque shuffle lors de l'écriture).

Oui, vous pouvez créer un index clusterisé sur des colonnes qui ne sont pas une clé primaire.