sql - mediumtext - varchar(255) v tinyblob v tinytext
mysql varchar 1000 or text (3)
Mi pregunta complementaria es ¿realmente hay alguna diferencia entre tinyblob y tinytext?
Comprar mi pregunta real es ¿qué razón, si hay alguna, elegiría varchar (255) sobre tinyblob o tinytext?
VARCHAR (255) es más estándar de SQL que tinyblob o tinytext. Por lo tanto, su secuencia de comandos y su aplicación serían más portátiles entre los proveedores de bases de datos.
No puede aplicar CHARACTER SET a TINYTEXT, pero puede hacerlo a VARCHAR (255)
Principalmente requisitos de almacenamiento y manejo / velocidad de la memoria:
En la tabla siguiente,
M
representa la longitud de columna declarada en caracteres para tipos de cadena no binarios y bytes para tipos de cadena binarios.L
representa la longitud real en bytes de un valor de cadena dado.VARCHAR (
M
), VARBINARIO (M
):
L
+ 1 bytes si los valores de columna requieren de 0 a 255 bytes,
L
+ 2 bytes si los valores pueden requerir más de 255 bytesTINYBLOB, TINYTEXT:
L
+ 1 bytes, dondeL
<2 8
Además, mira esta publicación:
Para cada tabla en uso, MySQL asigna memoria para 4 filas. Para cada una de estas filas, la columna CHAR (X) / VARCHAR (X) ocupa los X caracteres.
Un TEXTO / BLOB por otro lado está representado por un puntero de 8 bytes + una longitud de 1-4 bytes (dependiendo del tipo BLOB / TEXT). El BLOB / TEXT se asigna dinámicamente en el uso. Esto utilizará menos memoria, pero en algunos casos puede fragmentar su memoria a largo plazo.
Editar : como un lado, los blobs almacenan datos binarios y el texto almacena ASCII, esa es la única diferencia entre TINYBLOB y TINYTEXT.