[MySQL]Tipos y atributos para guardar e-mail

Iniciado por Skeletron, 3 Agosto 2009, 03:22 AM

0 Miembros y 1 Visitante están viendo este tema.

SnakeDrak

Hola,

Lo suyo es usar CHAR, ahora si realmente tienes el espacio de la base de datos muy limitado y crees que puedes llenarlo todo, entonces usar VARCHAR.

Realmente VARCHAR solo se usa cuando el espacio es un factor importante.

Pon en google, diferencia de varchar a char y te la explican, pero vamos si tienes paco en un varchar de 20 pues ocupará 5, y en un char ocupará 20, pero indexa mejor un char ya que indexará los 20 valores siempre, a diferencia del varchar.. que uno puede tener 5 y otro 15, la velocidad es mucho mayor con CHAR, pero vamos esto solo se nota en tablas como la mia de 500 millones de filas.

Saludos!

Skeletron

#11
Estuve leyendo algo:
http://dev.mysql.com/doc/refman/5.0/es/char.html

Ahora buscando algo que hablan de la diferencia de velocidad.. porque no encuentro nada.


EDITO:
Aca hablan de lo que dices...
Citar
Tu primer impulso sería elegir VARCHAR y sacar provecho del menor espacio de almacenamiento requerido en la tabla con el objetivo de aumentar la velocidad en las búsquedas tal como yo lo describí anteriormente pero VARCHAR es la excepción a la regla. Cuando usas VARCHAR en una tabla (al igual que ciertas columnas creadas para grandes cantidades de texto y valores binarios) el ancho de cada fila se hace inconsistente. Una fila podría tener 40 bytes de longitud mientras que otra sólo 8. MySQL puede manejar esto almacenando la longitud de la fila en su sistema de archivos pero el servidor debe leer la longitud de cada fila antes de buscarla y continuar con la siguiente fila, donde deberá verificar la longitud otra vez, ad nauseam. Al definir campos de texto como CHAR ocuparemos más espacio en el disco rígido pero habrá un aumento en la velocidad ya que el servidor sabrá que cada una de las filas tiene exactamente el mismo tamaño (por ejemplo 120 bytes), permitiéndole que busque entre las filas sin verificar su longitud primero. Por tal motivo, recomiendo que definas tus campos de texto como CHAR para mejorar la performance de las consultas, a menos que el espacio de almacenamiento sea una consideración importante (y con los precios de los discos de hoy en día esta no es una gran preocupación, principalmente con nuestra aplicación).
http://es.answers.yahoo.com/question/index?qid=20070423094137AARMM9p

[u]nsigned

Skeletron:

Mira, con varchar gastas menos espacio en HD, y con char ve mas rapido el script. Pero usa el que mas te guste.

Con respecto a tu duda original: es indistinto desde el punto de vista la de la programacion, se usan las mismas funciones de (My)SQL y PHP. Solo cambia el tipo de dato  ;)

Saludos

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!