als ingevoerde gegevens altijd zijn 20 tekens dan waarom niet overwegen om char(20) . te gebruiken . het gebruik van varchar(20) zal 20 bytes gebruiken voor het opslaan van karakters en 1 byte voor het opslaan van lengte. dus als er 1 miljoen records zijn, wordt 1 miljoen bytes verspild.
wat betreft snelheid tussen varchar (20) en varchar (255), dan denk ik niet dat het erg moeilijk kan zijn om er een te kiezen, ze zullen allebei 21 bytes gebruiken, ik zie geen significant prestatievoordeel of verlies van de een boven de ander.