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 :