¿Cuál es la diferencia entre VARCHAR y CHAR?

Resuelto steven asked hace 14 años • 17 respuestas

¿Cuál es la diferencia entre VARCHAR y CHAR en MySQL?

Estoy intentando almacenar hashes MD5.

steven avatar Dec 11 '09 10:12 steven
Aceptado

VARCHARes de longitud variable.

CHARes 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).

Anon. avatar Dec 11 '2009 03:12 Anon.

CARBONIZARSE

  1. Se utiliza para almacenar el valor de una cadena de caracteres de longitud fija .
  2. El máximo no. El número de caracteres que puede contener el tipo de datos es de 255 caracteres .
  3. Es un 50% más rápido que VARCHAR.
  4. Utiliza asignación de memoria estática .

VARCHAR

  1. Se utiliza para almacenar datos alfanuméricos de longitud variable .
  2. 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.
  3. Es más lento que CHAR.
  4. Utiliza asignación de memoria dinámica .
simplePerson43 avatar Mar 21 '2013 16:03 simplePerson43

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

P Sharma avatar Dec 11 '2009 07:12 P Sharma

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.

SLaks avatar Dec 11 '2009 03:12 SLaks