N’utilisez pas varchar(n) par défaut : la contrainte de longueur de champ n’est pas obligatoire (contrairement à d’autres SGBD) et, si le champ a un besoin fonctionnel d’être contraint en longueur, il y a des manières plus efficaces d’y parvenir.
Dans l'explication, la seule raison qui est donnée est métier : utiliser plutôt une check constraint car si le nombre de caractères devient trop court, ça évite de péter la table (add column, update, drop column).
ça ne parle pas des perfs donc le texte sous-entendant que :
3 colonnes varchar + check constraint avec length() <= 30
3 colonnes varchar(30)
sur quelques millions de lignes et un select col1, col2, col3 where limit 20, ça donne les mêmes perfs ?
# varchar(n)
Posté par stopspam . En réponse au journal PostgreSQL : ne faites pas ça !. Évalué à 3.
Dans l'explication, la seule raison qui est donnée est métier : utiliser plutôt une check constraint car si le nombre de caractères devient trop court, ça évite de péter la table (add column, update, drop column).
ça ne parle pas des perfs donc le texte sous-entendant que :
sur quelques millions de lignes et un select col1, col2, col3 where limit 20, ça donne les mêmes perfs ?
Qqun a testé ?