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

Responder a