2009-05-09 3 views

Répondre

5

C'est la responsabilité des bases de données une fois que vous lui dites qu'une colonne est une clé primaire.

À ce stade, il n'y a rien d'inquiétant, laissez la base de données vous en soucier.

De plus, puisqu'il s'agit d'une clé primaire, elle va être indexée. Donc, votre souci de performance à propos de chaque rangée (ou balayage de table) ne se produirait pas vraiment à ce niveau. La base de données utiliserait le fichier d'index pour s'assurer que seule une valeur unique puisse être insérée.

0

Je suppose que si elle est une clé primaire ou une clé unique

Mais comme je sais GUIDs sont uniques.

+0

GUID sont uniques dans un sens probabiliste, mais pas garanti (dans de nombreuses implémentations). –

+0

Oui, si vous utilisez un générateur de GUID aléatoire, vous obtenez un doublon (très improbable). Mais lorsque vous essayez d'insérer ces deux doublons en tant que clés primaires, le serveur signale une erreur. –

1

Toutes les clés primaires sont uniques. Ainsi, le serveur est responsable de vérifier que deux lignes n'ont jamais la même clé primaire. C'est vrai si la clé primaire est int, varchar, guid, peu importe. Comment la contrainte d'unicité est vérifiée est définie par l'implémentation. Fondamentalement, ne le laissez pas vous inquiéter à moins que vous l'ayez montré pour être une barrière de performance.

Toujours profiler avant de vous soucier excessivement des performances.

Questions connexes