Skip site navigation (1) Skip section navigation (2)

Tamaño en tabla toast para tipo de dato bytea

From: "Ivan Perales M(dot)" <ivan(dot)perales(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Tamaño en tabla toast para tipo de dato bytea
Date: 2012-02-10 07:47:58
Message-ID: CAHMuS07byj9MVv49PMB26ZojF799k6fYPVkJPPX15aDZX+bu6g@mail.gmail.com (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
Hola que tal, hace poco enfrente un problema que a la fecha no he podido
solucionar. No soy muy experto en postgres y me disculpo por eso, aunque ya
llevo varios años utilizandola.

El problema es el siguiente, tengo el mismo sistema corriendo en dos redes
separadas, ambos corren postgresql 8.3.14. Tengo una tabla con el tipo de
datos bytea para cargar cualquier tipo de archivo, y hasta donde se se han
cargado archivos de word, excel, imagenes en formato jpg, png, etc. El
funcionamiento esta de lujo. El problema viene con la tabla toast que se
crea para el almacen. En uno de los dos sistemas, llevan aproximadamente
cargados 350 registros, y el resultado que me da la funcion
pg_total_relation_size es de aprox 756 megas, en lo cual estoy de acuerdo,
ya que seguramente los usuarios cargan imagenes que salen directamente de
la camara digital las cuales andan desde 2 hasta 6 megas. Pero en el otro
sistema, le han dado un uso un poco mas grande, han cargado 4005 registros,
pero el tamaño de la tabla toast llega hasta los 60 GB!, no lo puedo creer,
aunque cargaran imagenes de 10 megas, las matematicas me dicen que deberian
ser 39.1 GB, y eso es exagerandole ya que no creo que las imagenes pasen de
2 megas. No encontre una funcion para obtener el tamaño de una columna o de
una fila asi que no pude obtener el tamaño de cada celda  en especifico,
pero se me hace increible. Si dumpeo la base con pg_dump y la restauro con
psql -f, el tamaño de la tabla toast regresa a 17 GB, que es lo que yo
supondria correcto. Al cabo de una semana, despues de agregar un par de
cientos de archivos, la base vuelve a subir varias decenas de GB's. Esto
jamas me habia ocurrido, solo esta en particular lo hace. Intente correr
vacuum de forma manual pero se tarda mucho tiempo, eh esperado hasta 2
horas y no veo que termine. No se si sea ese el tiempo que se lleve. El
autovacuum en esta version viene activado de forma predeterminada y asi lo
he dejado. Tenia la base corriendo desde abril del 2011 y no habia tenido
este problema. Hace como 1 mes por varios error que no lograba depurar en
la programacion del sistema, habilite el log del postgresql y asi lo deje,
4 semanas despues la tabla toast ocupaba 250 GB. Deshabilite el log,
restaure desde un dump y de empezar con 16 GB a una semana despues ya va en
60 GB. Ya se que suendo medio paranoico pero esto comenzo desde que
habilite el log. Ya deshabilite el log pero sigue haciendo lo mismo.

Realmente me falta mucho para aprender bien postgres, es por eso que
recurro a ustedes, si tienen alguna idea o pista que me pueda guiar con el
problema. De antemano agradezco su atencion y tiempo.

-- 
Lindolfo Iván Perales Mancinas
Cel. 481-126-2700
Solo existen 10 tipos de personas en el mundo, las que saben binario y las
que no.

Responses

pgsql-es-ayuda by date

Next:From: Lazaro Rubén García MartinezDate: 2012-02-10 14:28:58
Subject: RE: Tamaño en tabla toast para tipo de dato bytea
Previous:From: Alvaro HerreraDate: 2012-02-09 22:34:29
Subject: Re: Problema al restaurar una BD

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group