Lihat https://dev.mysql.com /doc/refman/5.7/en/string-type-overview.html
Pada dasarnya, semua tipe ini kecuali CHAR adalah panjang variabel.
Misalnya, jika Anda memiliki VARCHAR(72) dan Anda menulis abcd ke dalamnya, Anda akan menyimpan 5 byte. 4 byte untuk setiap karakter, dan awalan 1 byte untuk menyimpan panjang string (yaitu 4).
Jika panjang string lebih dari 255 karakter, maka awalan VARCHAR akan menjadi 2 byte. Jadi VARCHAR(300) dengan 256 karakter string yang disimpan di dalamnya akan memakan waktu 258 byte.
TINYTEXT selalu memiliki awalan 1 byte, karena Anda hanya dapat menyimpan 255 karakter di dalamnya, jadi abcd akan memakan waktu 5 byte.
TEXT memiliki awalan 2 byte, jadi abcd akan menjadi 6 byte.
LONGTEXT memiliki awalan 4 byte, jadi abcd akan menjadi 8 byte.
Terakhir, ada CHAR yang hampir tidak berguna Tipe. Sebuah CHAR(72) akan selalu mengambil 72 byte tidak peduli apa yang Anda simpan di dalamnya. Ini benar-benar hanya berguna untuk bidang super pendek di mana selalu ada jumlah karakter yang sama persis di bidang tersebut. Seperti Y atau N akan menjadi CHAR(1) . yang bagus calon.