Mi pregunta de lado es realmente hay alguna diferencia entre tinyblob & tinytext?varchar (255) v tinyblob v tinytext
Comprar mi pregunta real es ¿qué razón, si hay alguna, elegiría varchar (255) sobre tinyblob o tinytext?
Mi pregunta de lado es realmente hay alguna diferencia entre tinyblob & tinytext?varchar (255) v tinyblob v tinytext
Comprar mi pregunta real es ¿qué razón, si hay alguna, elegiría varchar (255) sobre tinyblob o tinytext?
Principalmente storage requirements y manejo de memoria/velocidad:
En la siguiente tabla,
M
representa la longitud de la columna declarada en caracteres de tipos de cadenas no binarias y bytes para tipos de cadenas binarias.L
representa la longitud real en bytes de un valor de cadena dado.VARCHAR (
M
), VARBINARY (M
):
L
+ 1 bytes si los valores de columna requieren 0 - 255 bytes,
L
+ 2 bytes si los valores pueden requerir más de 255 bytesTINYBLOB, TINYTEXT:
L
+ 1 bytes, dondeL
Además, ver this mensaje:
Para cada tabla en uso, MySQL asigna memoria para 4 filas. Para cada una de estas columnas , la columna CHAR (X)/VARCHAR (X) toma en los caracteres X.
A TEXT/BLOB por otro lado es representado por un puntero de 8 bytes + una longitud byte 1-4 (dependiendo del tipo BLOB/TEXT). El BLOB/TEXT es asignado dinámicamente en el uso. Esto hará que use menos memoria, pero en algunos casos puede fragmentar su memoria en la ejecución larga .
Editar: Como acotación al margen, manchas almacenar datos binarios y tiendas de texto ASCII, esa es la única diferencia entre TINYBLOB y 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 se puede aplicar conjunto de caracteres a TINYTEXT, pero se puede a VARCHAR (255)
que no es verdad, se puede aplicar tanto al conjunto de caracteres VARCHAR y TINYTEXT (en MySQL), pero no a TINYBLOB. –