sql >> Base de Datos >  >> RDS >> Oracle

Almacenamiento de imágenes cargadas:¿Debe almacenarse en el servidor o en la base de datos?

Sí, puede usar BLOB para datos binarios en Oracle. (Y muchas otras bases de datos). Las usamos aquí para almacenar archivos PDF.

Lo he visto hacerlo de una u otra manera. Almacene las imágenes en la base de datos, o almacene las imágenes en el sistema de archivos y luego guarde el nombre del archivo en la base de datos.

Ventajas de almacenar en base de datos

Todo está ahí en la base de datos. Sacas un registro, la imagen asociada está justo ahí con él.

Obtiene integridad de datos entre el archivo y sus datos asociados (suponiendo un buen diseño de esquema, por supuesto).

Una operación lógica para obtener datos e imágenes.

Me resulta más difícil y costoso escalar una base de datos para contener una gran cantidad de datos binarios que la alternativa del sistema de archivos.

Desventajas de almacenar en la base de datos

No todas las herramientas facilitarán la exploración de las imágenes.

No se puede acceder fácilmente a las imágenes desde la web.

Según el tamaño y la cantidad del archivo, puede terminar con una gran cantidad de datos sin procesar en algunas de sus tablas.

Cargar y almacenar datos de blobs no siempre es sencillo. (Recientemente escribí un tipo de datos personalizado para Hibernate, por ejemplo, para manejar nuestros PDF blobbed).

Ventajas del sistema de archivos

Probablemente más eficiente para leer y escribir los archivos.

Si desea publicar la imagen en la web, puede hacerlo directamente desde el sistema de archivos.

Exploración de imágenes más fácil durante la depuración y muchas herramientas gratuitas para hacerlo.

Creo que es más fácil escalar una aplicación cuando se colocan blobs en el sistema de archivos.

Desventajas del sistema de archivos

Integridad de datos/problemas de consistencia. Cambie algo sobre la estructura del archivo y tendrá otro paso que hacer en la base de datos.

Otra cosa es hacer una copia de seguridad.

Múltiples operaciones lógicas (leer de la base de datos, leer del sistema de archivos) para obtener imágenes y datos.