pokud zadaná data vždy budou 20 znaků, proč nezvažovat použití char(20) . použití varchar(20) použije 20 bajtů pro uložení znaku a 1 bajt pro uložení délky. takže pokud existuje 1 milion záznamů, 1 milion bajtů bude zbytečný.
pokud jde o rychlost mezi varchar(20) a varchar(255), pak si nemyslím, že by mohlo být velmi těžké vybrat jeden z nich, oba budou používat 21 bajtů, nevidím žádný významný přínos nebo ztrátu výkonu jednoho přes druhého.