jika data yang dimasukkan akan selalu 20 karakter daripada mengapa tidak mempertimbangkan untuk menggunakan char(20) . menggunakan varchar(20) akan menggunakan 20 byte untuk menyimpan karakter dan 1 byte untuk menyimpan panjang. jadi jika ada 1 juta record, 1 juta byte akan terbuang percuma.
sejauh menyangkut kecepatan antara varchar (20) dan varchar (255), maka saya tidak berpikir mungkin akan sangat sulit untuk memilih salah satunya, keduanya akan menggunakan 21 byte, saya tidak melihat manfaat atau kerugian kinerja yang signifikan dari satu di atas yang lain.