Personalmente recomiendo almacenar imágenes en la base de datos. Por supuesto, tiene ventajas y desventajas.
Ventajas de almacenar datos BLOB en la base de datos:
- Es más fácil mantener los datos BLOB sincronizados con los elementos restantes de la fila.
- Los datos BLOB se respaldan con la base de datos. Tener un único sistema de almacenamiento puede facilitar la administración.
- Se puede acceder a los datos BLOB a través del soporte XML en MySQL, que puede devolver una representación codificada en base 64 de los datos en el flujo XML.
- Las operaciones de búsqueda de texto completo (FTS) de MySQL se pueden realizar en columnas que contienen datos de caracteres de longitud fija o variable (incluido Unicode). También puede realizar operaciones FTS en datos basados en texto con formato contenidos en campos de imagen, por ejemplo, documentos de Microsoft Word o Microsoft Excel.
Desventajas de almacenar datos BLOB en la base de datos:
Considere cuidadosamente qué recursos podrían almacenarse mejor en el sistema de archivos en lugar de en una base de datos. Buenos ejemplos son las imágenes a las que normalmente se hace referencia a través de HTTP HREF. Esto se debe a que:
- Recuperar una imagen de una base de datos genera una sobrecarga significativa en comparación con el uso del sistema de archivos.
- El almacenamiento en disco en SAN de bases de datos suele ser más costoso que el almacenamiento en discos que se usan en granjas de servidores web.