Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

char y varchar

Estas en el tema de char y varchar en el foro de Mysql en Foros del Web. estoy en duda de si usar para mis tipos de datos char o varchar. yo se que van a ocupar entre 10-25 caracteres pero nose ...
  #1 (permalink)  
Antiguo 29/12/2007, 14:39
 
Fecha de Ingreso: octubre-2007
Mensajes: 394
Antigüedad: 16 años, 5 meses
Puntos: 2
char y varchar

estoy en duda de si usar para mis tipos de datos char o varchar. yo se que van a ocupar entre 10-25 caracteres pero nose si usar varchar que ocupa menos espacia ya que solo gasto lo k ocupo, o char que gasto el tamaño que le ponga al campo xo e leido por ahi que es mas rapido el acceso a ellos.

me podeis orientar un poco mas?
que mas ventajas o desventajas tienen ambos y que me recomendais?

Lee este tema==> Mejoremos la ortografía.

Última edición por BrujoNic; 29/12/2007 a las 17:08
  #2 (permalink)  
Antiguo 29/12/2007, 17:07
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 7 meses
Puntos: 55
Re: char y varchar

yo utilizo char para cuando la longitud de los datos q almaceno es practicamente siempre la misma sino utilizo varchar
los problemas de velocidad del varchar se pueden mejorar con un indice en el campo
__________________
Degiovanni Emilio
developtus.com
  #3 (permalink)  
Antiguo 29/12/2007, 18:06
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 18 años, 9 meses
Puntos: 24
Re: char y varchar

CHAR:

Ventajas:

Su lectura, indización y almacenamiento es más eficiente que el varchar ya que este último es de tamaño variable.

Desventajas:

Producen fragmentación dentro de los registros, ya que queda espacio sin utilizar cuando el dato guardado es de menor tamaño que la longitud del campo.

Producen pérdidas de datos si el dato que queremos guardar es de mayor tamaño que el campo.

VARCHAR:

Desventajas:

Su lectura, indización y almacenamiento es más dificil que el char ya que este último es de tamaño fijo.

Ventajas:

No produce fragmentación ya que ocupa exactamente el tamaño que necesita.
No se pierden datos, ya que el tamaño del mismo se ajusta según las necesidades.


Mi recomendación es que salvo que sepas de antemano que el tamaño de los datos que guardaras en ese campo es constante, uses el tipo VARCHAR.
  #4 (permalink)  
Antiguo 29/12/2007, 18:14
 
Fecha de Ingreso: octubre-2007
Mensajes: 394
Antigüedad: 16 años, 5 meses
Puntos: 2
Re: char y varchar

y la longitud que elija del varchar......da igual que ponga una mucho mas grande de lo k creo k va a ocupar, no? total, comov varchar solo me ocupa lo que gasto, no?
daria igual que me pasara por mucho...

gracias...
  #5 (permalink)  
Antiguo 30/12/2007, 11:42
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 18 años, 9 meses
Puntos: 24
Re: char y varchar

La longitud que indicas en el tipo VARCHAR, solo denota la longitud máxima de caracteres que soporta ese campo.

Si le das una longitud máxima de 5000, y guardas cadenas de 5 caracteres, solo ocuparás 7 bytes (2 para la longitud y 5 para los datos). Si utilizás una longitud máxima de 255 o menor, sólo se ocupa 1 byte para el tamaño.
  #6 (permalink)  
Antiguo 02/01/2008, 15:07
Avatar de pragone  
Fecha de Ingreso: diciembre-2007
Ubicación: Madrid
Mensajes: 223
Antigüedad: 16 años, 4 meses
Puntos: 2
Re: char y varchar

Por cierto,

Quisiera añadir, que sólo verás un beneficio real en el uso de CHAR si todo el registro tiene una longitud fija, es decir, si todos los campos son de longitud fija...
Si tienes dos campos, uno CHAR y uno VARCHAR entonces no obtienes ningún beneficio de que el primero sea CHAR.

Por cierto, TolaWare, no estoy muy de acuerdo con lo de fragmentación... definitivamente hay una pérdida de espacio útil (en eso 100% de acuerdo), pero a efectos de la alineación de registros no hay ningún problema de fragmentación como tal. De hecho, lo único que conozco parecido es cuando una BD tiene "aire", por eliminar y agregar muchos registros (y eso se resuelve con un optimize)... pero eso no pasa con registros de longitud fija sino solo si son de longitud variable.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:39.