At 11:23 03/05/2011, you wrote:
At 12:06 02/05/2011, you wrote:
Vengo de msql server, y allì por diferentes
razones habia optado por no guardar las
imagenes directamente en la base de datos, si
no guardar el path de donde se encontraba cada
una de estas. Esta decision la tomé por
problemas para recuperar la imagen, y ademàs,
no se si culparla por esto, las consultas
demoraban mucho mas que cuando la BD no tenia estos campos de imagenes.
Bien ahora, ya que he migrado de motor.. me
gustarìa re-intentar guardar las imagenes en la bd....
las imagenes a guardar son 50000 de aprox 70Kb c/u....
busco una opinion, de alguien que tenga experiencia en este tipo de campos...
conviene guardarla en la BD o guardarla como archivo fuera de la BD?
Yo estoy con este tipo de temas aunque trabajo
con imagenes mas pequeñas. Para imagenes como
estas, puedes incrustarlas en la bd. Para ello
te recomiendo crear una tabla aparte con dos
campos, un id y la imagen propiamente dicha. No
metas la imagen en la tabla de trabajo con mas
campos, eso hara que cada fila de dicha tabla
sea mas grande que si creas la tabla aparte y
tendras un rendimiento menor. Creo recordar que
se podia desconectar la compresion del toast
para una tabla dada, si es asi, hazlo, la
compresion de imagenes ya comprimidas solo consume cpu y recursos.
Como apunte adicional, indexa la tabla de
(id,imagen) con un indice hash si las busquedas
de imagenes las vas a hacer asi:
SELECT image FROM Image_Store WHERE (id=7)
Ya que es un poco mas rapido (coste O(1)) que si
usas un btree (coste log(n) como minimo)
Si necesitas recuperar las imagenes cuyos id
cumplan otras condiciones distintas al igual
(>,<,>=,<=, Not IN, etc...) usa el Btree
Eduardo Morras
-
Enviado a la lista de correo pgsql-es-ayuda ([email protected])
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda