À partir du manuel fin :
Les trois types dont ils parlent sont char(n) , varchar(n) , et text . Le conseil dit essentiellement que :
char(n)est le plus lent en raison du remplissage des blancs et de la nécessité de vérifier la contrainte de longueur.varchar(n)est généralement au milieu car la contrainte de longueur doit être vérifiée.text(AKAvarcharsansn) est généralement le plus rapide car il n'y a pas de temps système supplémentaire.
Mis à part le rembourrage en blanc pour char(n) et vérification de la longueur de char(n) et varchar(n) , ils sont tous traités de la même manière dans les coulisses.
Avec ActiveRecord, t.string est un varchar et t.text est text . Si vous n'avez pas de contraintes de longueur strictes sur vos chaînes, utilisez simplement t.text avec PostgreSQL.