ако въведените данни ще винаги да бъдат 20 знака, отколкото защо не обмислите използването на char(20) . използването на varchar(20) ще използва 20 байта за съхранение на символ и 1 байт за съхранение на дължина. така че ако има 1 милион записа, 1 милион байта ще бъдат пропилени.
що се отнася до скоростта между varchar(20) и varchar(255), тогава не мисля, че може да е много трудно да изберете един от тях, и двамата ще използват 21 байта, не виждам значителна полза или загуба на производителност едно над друго.