La Performance de la chaîne de comparaison vs int rejoindre en SQL

Il est admis que la recherche d'une table sur une colonne int est plus rapide que sur une colonne de type chaîne (dites de type varchar).

Cependant, si j'ai un t-Shirt de la table avec une colonne de Couleur, serait-il plus performant pour créer une table des Couleurs avec la clé primaire de cette table étant la clé étrangère sur la Chemise de la table? Serait la jointure de nier l'avantage d'avoir de la valeur dans la colonne de Couleur de t-Shirt étant un int au lieu d'une chaîne de valeur tels que les "Verts" lors de la recherche pour les Chemises vertes?

Est-ce un réel problème de performance? Il ressemble beaucoup à l'optimisation prématurée. Prenez de moi: des bases de données Complexes ne sont pas amusant. Ne pas faire de votre base de données plus complexes, à moins que vous n'ayez une bonne raison.
C'est pas un problème de performance, c'est théorique. Au moins dans mon cas c'est. Cependant, votre commentaire semble voler dans le visage de tous la normalisation des réponses données pour une performance théorique de la question.
La normalisation est une raison valable pour le faire, mais votre question est une question de rendement, c'est ce que mon commentaire était sur. Performance théorique n'est pas quelque chose de la peine de s'inquiéter au sujet de.

OriginalL'auteur RobertMGlynn | 2012-09-14