Lihat http://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.