Xem https://dev.mysql.com /doc/refman/5.7/en/string-type-overview.html
Về cơ bản, tất cả các loại này ngoại trừ CHAR là chiều dài thay đổi.
Ví dụ:nếu bạn có VARCHAR(72) và bạn viết abcd vào đó, bạn sẽ lưu trữ 5 byte. 4 byte cho mỗi ký tự và tiền tố 1 byte để lưu trữ độ dài của chuỗi (là 4).
Nếu độ dài của chuỗi trên 255 ký tự, thì tiền tố VARCHAR sẽ là 2 byte. Vì vậy, một VARCHAR(300) với một chuỗi 256 ký tự được lưu trữ trong nó sẽ chiếm 258 byte.
TINYTEXT luôn có tiền tố 1 byte, vì bạn chỉ có thể lưu trữ 255 ký tự trong đó, vì vậy abcd sẽ mất 5 byte.
TEXT có tiền tố 2 byte, vì vậy abcd sẽ là 6 byte.
LONGTEXT có tiền tố 4 byte, vì vậy abcd sẽ là 8 byte.
Cuối cùng, có CHAR gần như vô dụng gõ phím. A CHAR(72) sẽ luôn chiếm 72 byte bất kể bạn lưu trữ gì trong đó. Nó thực sự chỉ hữu ích cho các trường siêu ngắn, nơi luôn có cùng một số ký tự chính xác trong trường. Thích Y hoặc N sẽ là một CHAR(1) tốt ứng viên.