Re: Mejor tipo de dato para almacenar archivos.

From: "Ivan Perales M(dot)" <ivan(dot)perales(at)gmail(dot)com>
To: Edwin Quijada <listas_quijada(at)hotmail(dot)com>
Cc: "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Mejor tipo de dato para almacenar archivos.
Date: 2014-10-14 18:15:26
Message-ID: CAHMuS06tTkAvk6KurJv0fS+6Ao=B8_Ey3tUDFXO3VNdrsopixQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

El evitar el bytea era por que en otro sistema lo maneje pero ahi si habia
muchos inserts, deletes y updates, lo que ocasionaba broncas a largo plazo,
como por ejemplo que vacuum no eliminara las tuplas muertas de los updates
o deletes y con el tiempo la base llegara a incrementarse muchos mas gigas
del tamaño real, y un vacuum full diario no era viable ya que hacia
lentisimo el sistema por alrededor de hora y media, en ese entonces se opto
por mensualmente programar un mantenimiento donde bajabamos el sistema,
haciamos un dump, recreabamos la base y cargabamos la info.

Pero esta vez no habran updates ni deletes (y si los hay seran uno o dos
por cada mil) así que creo que puedo manejar el bytea sin tanta
preocupación. Estube haciendo comparacion entre guardarlo como bytea o como
text y en este segundo me incrementaria en mas del 30% el tamaño del
archivo tan solo por convertir los bytes a texto.

Así que le daré una oportunidad a bytea.

Saludos y gracias por tu comentario.

2014-10-13 19:28 GMT-05:00 Edwin Quijada <listas_quijada(at)hotmail(dot)com>:

> Por que evitar el bytea? Antes usaba TEXT convertido a BASE64 y luego pase
> todo el sistema a BYTEA eso si, uso una tabla aparte para manejar todo los
> archivos y como no tienen que modificarse mucho los vacuum sobre eesta
> tabla no pasan muy a menudo y funciona bien
>
>
> ------------------------------
> Date: Mon, 13 Oct 2014 10:51:19 -0500
> Subject: [pgsql-es-ayuda] Mejor tipo de dato para almacenar archivos.
> From: ivan(dot)perales(at)gmail(dot)com
> To: pgsql-es-ayuda(at)postgresql(dot)org
>
>
> Hola buen día.
>
> Actualmente tengo un sistema al que se le pueden cargar archivos,
> alrededor de un 70% son archivos de texto y el otro 30% archivos binarios.
> Estos archivos se almacenan fuera de la base de datos y solo se almacena
> una tabla con el path hacia el mismo.
>
> Quiero ver la manera de ingresarlos a la base de datos, ya que es mas
> simple solo hacer backup de la base de datos, pero sobre todo no corren el
> riesgo de ser eliminados, lo cual al estar fuera es un riesgo potencial.
>
> Sin embargo, anteriormente tenia un software el cual si ingresaba los
> archivos a la bd, en su mayoria fotografias pero habia algunas que eran mas
> de 5 megas y en mi funcion (programa desde java) yo hacia el insert por 1
> mega y luego hacia updates de 1 mega tambien. Estoy seguro que no era la
> mejor manera de hacerlo puesto que que las tuplas muertas por el update no
> las eliminaba el vacuum normal, tenia que hacer un full vacuum lo que
> ocasionaba que se bloqueara la base de datos y aparte de todo se tardaba un
> buen rato en ello. En ese entonces decidí moverlos a fuera de la base de
> datos.
>
> Hoy me veo en la necesidad de manejarlos mediante la bd, para ello estaba
> pensando en manejar dos tablas identicas, con la diferencia de que una
> manejara el contenido con el tipo de dato text para los archivos de texto y
> la otra con bytea para todos los demas tipos de archivo. De esta manera el
> vacuum no tardaria tanto (segun yo). Ademas de que los archivos de texto no
> sobrepasan los 100k y los binarios el mas grande que he visto es casi el
> mega. Ademas de que una vez insertado el archivo ya jamás se elimina y
> tampoco se insertan opciones tentativas, si no ya archivos finales
> aceptados, por lo que no habria funcion delete para ellos.
>
> Alomejor estoy atacando de manera equivocada el problema debido a mi
> experiencia previa, es por eso que recurro a su ayuda, para ver cual seria
> la mejor manera de manejar los archivos binarios, estaba pensando tambien
> en manejar una sola tabla con columna text, y ahi insertar todos los
> archivos en formato hexadecimal convertida desde el software, ya que lo que
> quiero evitar al máximo es el bytea, que segun he leido el vacuum tiene
> algunos problemas con ella.
>
> Alguna sugerencia?
>
> Saludos
>
> --
> Lindolfo Iván Perales Mancinas
> Solo existen 10 tipos de personas en el mundo, las que saben binario y las
> que no.
>

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

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Guillermo E. Villanueva 2014-10-14 23:50:01 Análisis de performance
Previous Message Eduardo Arenas C. 2014-10-14 18:04:10 Re: particion pg_xlog