Si por un tema de seguridad necesitas tener la data en la DB pues podrías 
guardarla ahí. Tuve una experiencia en un sistema donde guardábamos las huellas 
de personas en la DB. Para las imágenes solo buscábamos la que realmente era 
útil y nunca se usaba un select * porque era muy lento. En otros proyectos que 
he desarrollado las imágenes las he puesto en un servidor WEB apache, controlo 
los paths desde la aplicación y en la db solo guardo el nombre del fichero. De 
esa forma si el storage para las imágenes cambia, no tengo que modificar los 
registros en la base, sino los parámetros de configuración de la aplicación. Si 
elimino la tupla elimino también el fichero.

Saludos.

-----Mensaje original-----
De: pgsql-es-ayuda-ow...@postgresql.org 
[mailto:pgsql-es-ayuda-ow...@postgresql.org] En nombre de Kernel
Enviado el: jueves, 30 de marzo de 2017 12:04 p. m.
Para: 'Ayuda'
Asunto: Re: [pgsql-es-ayuda] como guardar ficheros en una tabla

El 30/03/2017 a las 14:50, Lázaro Garcia escribió:
> El oid no es más que la referencia del large object que fue insertado en otra 
> tabla independiente del catálogo. El bytea guarda en el mismo campo y utiliza 
> TOAST. En lo personal recomendaría más guardar files independientes al motor 
> y en la base almacenar el path donde el fichero está guardado por las 
> siguientes razones:
>
> - Tu base puede crecer mucho (data files y generación de WAL). Con la base 
> muy grande los backups and restore tardarán más, en cuanto a los WAL se 
> generarán en mayor cantidad y será mucho mayor el flujo de datos si necesitas 
> usar réplica.
>
> - Si haces un select sobre ese campo igual demorará más pues el motor 
> necesitará colocar la data en los shared buffers, no creo que para ficheros 
> sea una buena idea pues que pasa que si llenas los shared buffers de files o 
> si por alguna razón shared buffers no alcanzara y fuese necesario usar swap?
>
> - Lo mismo sucediera si quisieras no se obtener los ficheros de un nombre 
> específico. En este caso si guardas el nombre del fichero en la base 
> solamente y configuras los paths a nivel de aplicación, pudieras incluso 
> indexar por este campo para hacer algún tipo de búsqueda específico.
>
> Como nota: Si decides usar LO (Large objects), debes utilizar vacuumlo para 
> eliminar los objetos largos del catálogo que ya no son referenciados.
>
> Saludos.
>
>
> -----Mensaje original-----
> De: pgsql-es-ayuda-ow...@postgresql.org 
> [mailto:pgsql-es-ayuda-ow...@postgresql.org] En nombre de Kernel Enviado el: 
> miércoles, 29 de marzo de 2017 03:47 a. m.
> Para: Ayuda
> Asunto: [pgsql-es-ayuda] como guardar ficheros en una tabla
>
> hola,
> Hasta ahora nunca he guardado ficheros el la db (pdf,jpg,doc) en la db y 
> estoy valorando la posibilidad de guardarlos.
>
> He visto 2 maneras , una con oid (lo_import y lo_export) o definir un 
> tipo bytea (no se con que funciones se maneja)
>
> me gustaria preguntaros algunas cosas
>
> Es recomendable guardarlo en la db
>
> ¿cual es la mejor manera con el typo bytea o oid?
>
>
> Agradeceria comentarios sobre vuestra experiencia con este tema
>
>
> Gracias
>
> -
> Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org) 
> Para cambiar tu suscripci n:
> http://www.postgresql.org/mailpref/pgsql-es-ayuda
>
>
Gracias Lazaro,
actualmente lo tengo con ficheros, pero estoy probando y he  añadido un campo 
bytea en la tabla actual, en la que guardo el nombre y demas datos.
Estoy pensando en limitar el tamaño del fichero a guardar a 5 megas.

En cuanto a la replica, también tengo que replicar los ficheros, lo hago con 
rsync, pero es verdad que los ficheros wal creceran.


El tamaño  del backup  y los ficheros es de 5GB mas o menos
, he probado a cargarlo y la copia mas o menos ocupa lo mismo,

mas o menos trabajan 50 usuarios, se pueden subir 10 o 15 archivos al dia.

-Las ventajas que veo es que tengo todo en el mismo sitio, no tengo que 
tener por una lado la db y los ficheros, las replicas de ambos.
Puedo atacar a la db desde distintas apliaciones que pueden estar en 
distintas plataformas, con acceder a la db tengo todo.

Creo que los tamaños de los que hablo son pequeños

¿Como lo ves?


Gracias



-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Reply via email to