En SQL, los tipos de datos BINARY(n)
, VARBINARY(n)
, y BLOB
se utilizan para almacenar datos binarios (como imágenes, archivos o datos encriptados). A continuación, se explican sus diferencias:
BINARY(n)
n
.n
bytes. Si los datos almacenados son más pequeños, se rellenan con bytes nulos (0x00
).CREATE TABLE ejemplo_binary (
clave BINARY(16) -- Almacena exactamente 16 bytes
);
INSERT INTO ejemplo_binary (clave) VALUES (0xA1B2C3D4);
VARBINARY(n)
n
.BINARY(n)
.VARBINARY(MAX)
para tamaños mayores (hasta 2 GB).CREATE TABLE ejemplo_varbinary (
archivo VARBINARY(255) -- Tamaño máximo: 255 bytes
);
INSERT INTO ejemplo_varbinary (archivo) VALUES (0xDEADBEEF);
BLOB
TINYBLOB
: Pequeños datos binarios.BLOB
: Tamaño estándar.MEDIUMBLOB
: Tamaño medio.LONGBLOB
: Tamaño muy grande (hasta varios GB).BLOB
estándar admite hasta 64 KB, mientras que un LONGBLOB
soporta hasta 4 GB.CREATE TABLE ejemplo_blob (
imagen BLOB -- Para almacenar datos binarios grandes
);
INSERT INTO ejemplo_blob (imagen) VALUES (LOAD_FILE('/ruta/a/la/imagen.jpg'));
Característica | BINARY(n) | VARBINARY(n) | BLOB |
---|---|---|---|
Tamaño de almacenamiento | Fijo (n bytes) |
Variable (hasta n bytes) |
Muy grande (dependiendo del tipo) |
Relleno de bytes | Sí (con 0x00 ) |
No | No |
Usos comunes | Claves encriptadas, datos de tamaño fijo | Archivos pequeños, datos binarios variables | Imágenes, videos, archivos grandes |
Tamaño máximo | Hasta 8,000 bytes (típico) | Hasta 8,000 bytes o más | Varios GB (según DBMS) |
BINARY(n)
: Si sabes que el tamaño de los datos siempre será fijo.VARBINARY(n)
: Si los datos son variables pero pequeños o medianos.BLOB
: Si necesitas almacenar grandes cantidades de datos binarios.