Dari MySQL Dokumentasi :
Perbedaan antara CHAR dan VARCHAR nilai adalah cara mereka disimpan, CHAR (10) membutuhkan 10 byte penyimpanan tidak peduli berapa banyak karakter yang Anda gunakan karena data diisi dengan spasi, VARCHAR (10) hanya membutuhkan 1 byte (dalam kumpulan karakter 1 byte) + prefiks panjang (1 ketika panjangnya 255 atau kurang, 2 jika tidak... Saya tidak tahu mengapa key_len untuk EXPLAIN tambahkan 2 byte)
Saya tidak mengerti apa yang Anda maksud dengan trailing blank, meskipun saya dapat membayangkan Anda mengacu pada kelebihan spasi tambahan, dengan VARCHAR ini dipotong dengan peringatan, sementara di CHAR kolom spasi ini dipotong secara diam-diam, ini masuk akal karena CHAR disimpan dengan trailing blank di akhir.
Mengenai kumpulan karakter dalam tautan Anda dapat melihat bahwa jumlah karakter untuk CHAR atau VARCHAR adalah sama, meskipun, penyimpanan Anda akan membutuhkan 1 hingga 4 byte per karakter, di sini
adalah daftar kumpulan karakter yang didukung dan di sini byte per karakter.
Apa yang saya baca tentang format baris yang berbeda untuk InnoDB
Karakteristik Format Baris Redundan :
Karakteristik Format Baris COMPACT :