om data som anges kommer alltid att vara 20 tecken än varför inte överväga att använda char(20) . Användning av varchar(20) kommer att använda 20 byte för att lagra tecken och 1 byte för att lagra längd. så om det finns 1 miljon poster kommer 1 miljon byte att gå till spillo.
När det gäller hastigheten mellan varchar(20) och varchar(255), så tror jag inte att det kan vara särskilt svårt att välja en av dem, båda kommer att använda 21 byte, jag ser ingen signifikant prestandafördel eller förlust av den ena framför den andra.