Mejor tipo de dato para almacenar archivos.

From: "Ivan Perales M(dot)" <ivan(dot)perales(at)gmail(dot)com>
To: Ayuda Esp PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Mejor tipo de dato para almacenar archivos.
Date: 2014-10-13 15:51:19
Message-ID: CAHMuS07gm78+TrocOy1LijTgVXTZLabCwi52_HLzw21uJG=5Ng@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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.

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Edwin Quijada 2014-10-14 00:24:14 RE: Consulta sobre dblink a oracle
Previous Message Mario Soto Cordones 2014-10-13 13:16:50 RE: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] Traducción documentación PostgreSQL-Recordar