si les données saisies seront toujours 20 caractères que pourquoi ne pas envisager d'utiliser char(20) . l'utilisation de varchar(20) utilisera 20 octets pour stocker le caractère et 1 octet pour stocker la longueur. donc s'il y a 1 million d'enregistrements, 1 million d'octets seront gaspillés.
en ce qui concerne la vitesse entre varchar(20) et varchar(255), alors je ne pense pas qu'il soit très difficile d'en choisir un, les deux utiliseront 21 octets, je ne vois aucun avantage ou perte de performance significatif de l'un sur l'autre.