Diferencia entre VARCHAR y CHAR en MySQL

Preet Sanghavi 28 marzo 2022
Diferencia entre VARCHAR y CHAR en MySQL

Este tutorial presentará las diferencias entre varchar y char en MySQL.

Algunos de los puntos clave para cada uno son los siguientes.

CHAR

  • CHAR es un tipo de datos de espacio fijo que admite cadenas.
  • Los espacios vacíos o restantes en el texto o la cadena se sustituyen por espacios en blanco o espacios.
  • CHAR toma un tamaño de un byte por cada carácter en la cadena o texto de entrada.
  • Por lo tanto, podemos decir que si definimos CHAR(100), tendrá un tamaño de 100 bits sin importar la longitud de la cadena o el número de caracteres.

VARCHAR(M)

  • VARCHAR tiene un tamaño editable con un máximo de 65535 caracteres. El usuario tendría que especificar una longitud entre 1 y 65535 caracteres.
  • Además, VARCHAR ocupa x + 1 byte de espacio en el disco donde el número total de caracteres es menor o igual a 255. Y ocupa x + 2 bytes de espacio en el disco donde el número total de caracteres es mayor o igual a 256 caracteres y menor que igual a 65535 caracteres.
  • Por último, VARCHAR puede formar parte de un índice.

Por lo tanto, podemos resumir las diferencias clave: varchar no tiene una longitud fija, mientras que char tiene una longitud fija o un tamaño fijo.

En la práctica, podemos suponer que usar varchar es mejor que usar el tipo de datos char. La razón detrás de esta suposición es que se puede ahorrar mucho espacio con el tipo de datos varchar.

Veamos un ejemplo para darnos cuenta de la ventaja de varchar.

Digamos que definimos un char como char(25) y almacenamos el valor de la cadena como Preet. Por otro lado, definamos otra columna con tipo de datos como varchar con un valor de cadena como Preet.

Aunque estas columnas con diferentes tipos de datos tienen el valor Preet, varchar solo consumirá 5 bits, mientras que char consumirá los 25 tamaños de bits predefinidos. El resto del espacio vacío se rellena con espacios en blanco char.

Esta ventaja de varchar puede ser enorme en entornos de producción donde el almacenamiento es un gran problema. Además, si estamos usando varchar, no tenemos que preocuparnos de que el tamaño de nuestra cadena supere un valor de bit predefinido.

Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub