Re: almacenar en bd o no?

From: "Marco Antonio Frias Butron" <marcoantoniofrias(at)gmail(dot)com>
To: "Crispin T(dot)" <cris(dot)emis(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: almacenar en bd o no?
Date: 2008-05-26 19:11:40
Message-ID: 33e030de0805261211l28669692j7da311255ca15bc7@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Mon, May 26, 2008 at 2:29 AM, Crispin T. <cris(dot)emis(at)gmail(dot)com> wrote:
> hola tengo un problema resulta que tengo un sistema en java con bd postgres
> 8.2 y todo me va de maravilla pero empieza a preocuparme un asunto, resulta
> que por performance y por no cargar demasiado la bd no almacene las fotos de
> unos inmuebles en al bd pero me resulta complicado al momento de hacer
> backups ya que las imagenes las agarro como archivos y pues copiar varios
> archivos y restaurar varios archivos ademas de los datos de la bd se me hace
> mucho trabajo y mucho tiempo pero no me anime a almacenarlos en un tipo oid
> porque por cada inmueble se manejan alrededor de 30 fotos png de 600x500
> aproximadamente, ademas que antes el sistema hera monolitoco (corria en una
> unica pc) pero ahora el negocio crecio y se necesita que corra en una lan y
> bueno nose como hacer que una aplicación java cargue archivos que estan en
> otra pc (no veo seguro compartir la carpeta de los archivos) y me estoy
> animando a guardar las imagenes en la bd
>
> dados los casos ¿que harian ustedes en este caso?

Hola, a mí me ocurrió algún momento este problema, yo tengo una
aplicación a nivel nacional que utiliza postgresql y java (hibernate,
jsf, otros).

> en el caso de sugerirme que guarde las imagenes en la bd

Para guardar archivos dentro de la DB y que tenga un buen
funcionamiento intervienen a mi criterio varios factores: peso del
archivo, número de subidas/bajadas del archivo, capacidad servidor
(hardware + software), ancho de banda (aunque en tu caso en lan)... si
los archivos no son grandes < 7MB, subidas < 30 y bajadas < 50 al
día, 1-4GB de RAM con Slackware Linux **opcional** te debería
funcionar sin problemas... la aplicación que desarrollamos ya va por
el año en producción, 1400 archivos y de tamaño 2.7GB y funciona
bien!.

> ¿hay forma de sacar backup's de solo algunas tablas?

pg_dump tiene la opción -t, esta opción hace que el respaldo sólo lo
tome en cuenta una o varias tabla o utilizando expresiones regulares.
(creo que esto de expresiones solo funciona desde 8.2)... los comandos
quedarían algo así:

respaldo de dos tablas en formato texto plano:
$ pg_dump -d <base de datos> -U <usuario> -t tabla1 -t tabla2 -F p > dump.sql

respaldo de todas las tablas que comiencen con log en formato texto plano:
$ pg_dump -d <base de datos> -U <usuario> -t log* -F p > log_dump.sql

dale una leída a:

http://www.postgresql.org/docs/current/interactive/app-pgdump.html

> en caso de no guardar en la bd las imagenes ¿que solucion me sugieren para
> cargar imagenes desde otra pc(sin compartir la carpeta)?

Guardando en el sistema de archivos (disco duro), sólo debes hacer que
la aplicación recibir el archivo en el servidor y lo escriba en el
disco duro en una carpeta con los permisos adecuados (clase File, etc)
y esa dirección lo guardas en una tabla que indique las direcciones de
donde recuperarlas luego y no es necesario que este compartido ni nada
por el estilo... aunque esto acarrea el problema de sincronización
entre tu tabla y el sistema de archivos....

Ambas soluciones no afectan al usuario ya que ve lo mismo... el que
asume el problema es la aplicación en la forma de guardar/recuperar.

--
Saludos y abrazos...

Marco Antonio Frias Butrón
Slackware Linux User
Linux Registered User #356229 - http://counter.li.org/

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Marcos Saldivar 2008-05-26 19:36:39 Re: recomendacion para BD grande
Previous Message Gilberto Castillo Martínez 2008-05-26 19:11:25 Re: Concatenar registro y regresar solo uno