At 22:15 14/07/2011, you wrote:
Excerpts from lgarciam's message of jue jul 14 15:49:51 -0400 2011:
> Probaré y te diré que tal.

No debería afectar en nada.  La imagen grande debería guardarse fuera de
la tabla principal, en la tabla toast.  Si no la lees, entonces no hay
costo adicional.  En la tabla principal cada puntero a un campo que está
en toast sólo cuesta como 20 bytes.  Por lo tanto lo que está sugiriendo
Edwin es que hagas lo mismo que hace la tabla toast automáticamente,
sólo que además te obliga a modificar la aplicación, asegurarte de poner
los permisos correctos en la tabla secundaria, asegurarte de no tener
imágenes faltantes o imágenes sobrantes, etc.

Afecta cuando se hace un select *. Si se hace mediante el toast, el campo bytea en el toast se incluye, comiendose los recursos de io y memoria; si se usa una tabla adicional, el uso de un select * no se incluye y todo es mas liviano. Yo uso esta normalizacion adicional al usar hibernate en java, ya que usa select * de forma indiscriminada, incluso cuando no hace falta.

No obstante, dos apuntes a este hilo.

a) Almacena las imagenes en disco si son un problema en la bd.
b) Realmente necesitas imagenes de 1'7 MB? En que formato las guardas (jpeg, png, bmp, tiff, otro)? Las puedes redimiensionar? Las puedes reformatear?

Para hacerte una idea, una maquina de fotos de ahora con 8 MegaPixeles, saca imagenes de 2800*2800 pixeles. Se que estos numeros no dicen mucho, pero si los comparas con el tamaño de cine hd digital usado para rodar peliculas, veras que es muy similar. Realmente necesitas guardar imagenes a una resolucion pensada para ser proyectadas en una pantalla de 200 metros cuadrados?

Un saludo

-
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

Responder a