From: | "Lazaro Garcia" <lazaro3487(at)gmail(dot)com> |
---|---|
To: | "'Kernel'" <jucabapa(at)gmail(dot)com>, "'Ayuda'" <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | RE: como guardar ficheros en una tabla |
Date: | 2017-03-30 12:50:19 |
Message-ID: | 004201d2a954$33a11f30$9ae35d90$@gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
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-owner(at)postgresql(dot)org [mailto:pgsql-es-ayuda-owner(at)postgresql(dot)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(at)postgresql(dot)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(at)postgresql(dot)org)
Para cambiar tu suscripcin:
http://www.postgresql.org/mailpref/pgsql-es-ayuda
From | Date | Subject | |
---|---|---|---|
Next Message | Enrique Llácer Darós | 2017-03-30 15:12:08 | Problemas con permisos. |
Previous Message | Carlos Ruiz | 2017-03-30 00:27:25 | Re: [pgsql-es-ayuda] Caso de éxito Postgresql en Universidades |