¿Cuál es la diferencia entre VARCHAR y CHAR?
¿Cuál es la diferencia entre VARCHAR y CHAR en MySQL?
Estoy intentando almacenar hashes MD5.
VARCHAR
es de longitud variable.
CHAR
es de longitud fija.
Si su contenido tiene un tamaño fijo, obtendrá un mejor rendimiento con CHAR
.
Consulte la página de MySQL sobre tipos CHAR y VARCHAR para obtener una explicación detallada (asegúrese de leer también los comentarios).
CARBONIZARSE
- Se utiliza para almacenar el valor de una cadena de caracteres de longitud fija .
- El máximo no. El número de caracteres que puede contener el tipo de datos es de 255 caracteres .
- Es un 50% más rápido que VARCHAR.
- Utiliza asignación de memoria estática .
VARCHAR
- Se utiliza para almacenar datos alfanuméricos de longitud variable .
- El máximo que este tipo de datos puede contener es hasta
- Pre-MySQL 5.0.3: 255 caracteres .
- Post-MySQL 5.0.3: 65.535 caracteres compartidos para la fila.
- Es más lento que CHAR.
- Utiliza asignación de memoria dinámica .
CHAR VARCHAR
CHAR se utiliza para variables de tamaño de longitud fija.
VARCHAR se utiliza para variables de tamaño de longitud variable.
P.ej
Create table temp
(City CHAR(10),
Street VARCHAR(10));
Insert into temp
values('Pune','Oxford');
select length(city), length(street) from temp;
La salida será
length(City) Length(street)
10 6
Conclusión: Para usar el espacio de almacenamiento de manera eficiente, debe usar VARCHAR en lugar de CHAR si la longitud de la variable es variable
Una CHAR(x)
columna sólo puede tener exactamente x
caracteres.
Una VARCHAR(x)
columna puede tener hasta x
caracteres.
Dado que sus hashes MD5 siempre tendrán el mismo tamaño, probablemente debería usar un archivo CHAR
.
Sin embargo, en primer lugar, no deberías utilizar MD5; ha conocido debilidades.
Utilice SHA2 en su lugar.
Si está codificando contraseñas, debe usar bcrypt.