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

Tamaño campos

Estas en el tema de Tamaño campos en el foro de Mysql en Foros del Web. Buenas, tengo una aplicación que almacena noticias, lo que me supone un tamaño de datos muy variable a la hora de guardarlo en un campo. ...
  #1 (permalink)  
Antiguo 13/01/2009, 04:41
 
Fecha de Ingreso: enero-2007
Mensajes: 78
Antigüedad: 17 años, 3 meses
Puntos: 0
Tamaño campos

Buenas, tengo una aplicación que almacena noticias, lo que me supone un tamaño de datos muy variable a la hora de guardarlo en un campo.

Hay alguna manera de realizar dinamicamente la reserva de espacio de un campo MySql, que en principio nunca va a ser modificado? Oh tengo que reservar por narices 5000 espacios a pesar de que tan solo utilice 100 en algun caso(o algo similar). Es esto correcto?

La otra opción es almacenar en ficheros, me recomendais algo?

Saludos y gracias.
  #2 (permalink)  
Antiguo 13/01/2009, 16:02
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Respuesta: Tamaño campos

Como tienes estructurada tu tabla?
Que tipo de columna usas para guardar la noticia?
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #3 (permalink)  
Antiguo 14/01/2009, 03:25
 
Fecha de Ingreso: enero-2007
Mensajes: 78
Antigüedad: 17 años, 3 meses
Puntos: 0
Respuesta: Tamaño campos

La estructura de la tabla es la siguiente:

CREATE TABLE IF NOT EXISTS `9` (
`idnoticia` int(11) NOT NULL auto_increment,
`id_seccion` int(11) NOT NULL,
`titulo` varchar(150) NOT NULL,
`descripcion` varchar(2000) NOT NULL,---------------------->Campo conflicto.
`hora` datetime NOT NULL,
`indexado` bit(1) default NULL,
`link` varchar(300) NOT NULL,
PRIMARY KEY (`idnoticia`),
UNIQUE KEY `link` (`link`),
KEY `secciones` (`id_seccion`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;


El tema es lo que comentaba, que el campo descripción puede variar desde tener 300 caracteres hasta X(donde no se que valor es X, por ejemplo ahora tengo un fichero de 6275 bytes de texto plano), entonces el tema es que no se cual sería la mejor manera para plantear este problema, tal vez delcarar un tamaño de campo exageradamente grande para tener claro que jamás me quedaré corto(en tal caso estoy reservando un espacio exagerado en los campos que no utilizo tal tamaño?), el caso es que no se si hay alguna manera de hacer un campo dinámico o algo asi.

Saludo y gracias.
  #4 (permalink)  
Antiguo 14/01/2009, 11:00
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Respuesta: Tamaño campos

para evitarte eso puedes usar el tipo de campo TEXT en vez de varchar

mas info http://dev.mysql.com/doc/refman/5.0/es/blob.html

Saludos!
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #5 (permalink)  
Antiguo 15/01/2009, 09:02
 
Fecha de Ingreso: enero-2007
Mensajes: 78
Antigüedad: 17 años, 3 meses
Puntos: 0
Respuesta: Tamaño campos

Ante todo gracias.

Segun he leido el tipo "LongText: un texto con un máximo de caracteres 4.294.967.295." Vamos que voy sobrado, pero esto es correcto teniendo en cuenta que la gran mayoría de campos no voy a utilizar ni el 5% de capacidad. Que pasa con el espacio sobrante, se reserva en memoria o eso no es problema.

Disculpar mi inexperiencia pero no me gustaría hacer algo por hacer sino preferiblemente hacerlo bien.

Gracias.
  #6 (permalink)  
Antiguo 16/01/2009, 10:52
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Respuesta: Tamaño campos

Cita:
"LongText: un texto con un máximo de caracteres 4.294.967.295."
Ese es el espacio máximo que puede almacenar, no es el espacio que siempre va usar así este vació, cuando un campo esta vació es mucho menor, es solo bytes, (ahora no recuerdo cuanto, voy a buscar la info)

Saludos!
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #7 (permalink)  
Antiguo 19/01/2009, 13:10
 
Fecha de Ingreso: diciembre-2008
Mensajes: 39
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Tamaño campos

Text tiene un overhead para marcar cuantos bytes utiliza. es muy recomendable.
por otro lado, el varchar estuvo limitado a 255 caracteres hasta la version 5.0.3 de mysql, hoy en dia llega a 65,535.
  #8 (permalink)  
Antiguo 02/02/2009, 04:26
 
Fecha de Ingreso: enero-2007
Mensajes: 78
Antigüedad: 17 años, 3 meses
Puntos: 0
Respuesta: Tamaño campos

Que quiere decir que text tiene un overhead, podrías explicarmelo...

Gracias.
  #9 (permalink)  
Antiguo 03/02/2009, 06:25
 
Fecha de Ingreso: diciembre-2008
Mensajes: 39
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Tamaño campos

que tiene un costo asociado de marcar cuantos bytes estas utilizando e informacion aledaña.
ergo: si vos estas utilizando 300 bytes, antes de esos 300 bytes, tiene X cantidad de bytes que dan informacion sobre esos 300 bytes.
overhead es informacion o computaciones adicionales que se tienen que hacer/guardar para llegar a un objetivo.
en este caso, es el costo de almacenar texto en una manera mas eficiente.
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 04:51.