Para almacenar una cadena en
MySQL podemos utilizar varios tipos de campo, como nunca recuerdo la diferencia entre los normales, los
medium y los
long, ahí queda la nota mental:
- Char: 0-255 caracteres.
- Varchar: 0-255 caracteres.
- Tinytext: 0-255 caracteres.
- Text: 65.535 caracteres.
- Mediumtext: 16.777.215 caracteres.
- Longtext: 4.294.967.295 caracteres.
Si, nos ha extrañado, pero los campos de tipo
mediumtext albergan más cantidad de datos que los
text. Fin de la nota mental.
Update: A raíz
del comentario de Wu me gustaría aclarar que la diferencia entre
CHAR y
VARCHAR es la forma en la que se almacenan los datos en MySQL. Por ejemplo entre un
CHAR(4) y un
VARCHAR(4) guardando el dato "ab" tendríamos que:
| CHAR(4) | "ab " |
| VARCHAR(4) | "ab" |
Como vemos en los campos de tipo
CHAR siempre se reserva el espacio que hemos designado para su uso, mientras que en los
VARCHAR la asignación es dinámica siempre y cuando no se sobrepase el límite impuesto.
El
TINYTEXT, junto a sus hermanos
TEXT,
MEDIUMTEXT y
LONGTEXT son de tipo
BLOB (
binary large object) y su almacenamiento es distinto a
CHAR ó
VARCHAR.