archivo de hardware en el servidor o binario para archivos de sonido e imagen en SQL con la aplicación ASP.Net

StackOverflow https://stackoverflow.com/questions/710976

Pregunta

Estoy construyendo una aplicación web ASP.Net C # que va a utilizar una gran cantidad de archivos de sonido y archivos de imagen. Teniendo en cuenta el rendimiento, sería mejor para almacenar todos los archivos de SQL como tipo de datos de imagen y recuperar de la base de datos o tienda / archivar el archivo de disco en el servidor y almacenar la ruta en SQL? Im curioso sobre los pros y los contras -. Aparte de la obvia de espacio de almacenamiento y capacidad de gestión

No hay solución correcta

Otros consejos

Mi cliente actual está estudiando las mismas opciones. Hay algunas ventajas y desventajas a tener en cuenta:

Almacenamiento como tipo de datos de imagen:

  • Sólo es necesario respaldo su base de datos en lugar de la base de datos y lo coloca en el sistema de archivos
  • Usted no tiene que preocuparse acerca de los archivos que se mueve sin la base de datos se actualiza con la nueva ubicación o cualquier otro problema con colgando punteros a ficheros que no existen

Almacenamiento como un archivo con una ruta en la base de datos:

  • Acceso ligeramente más rápido (vamos a estar cuantificando esto en los próximos días)

Al principio yo pensaba que también habría un problema con la caché del cliente de las imágenes. Por ejemplo, cuando .NET obtiene la imagen de la base de datos del navegador del cliente no se puede almacenar en caché - se ve como una nueva imagen cada vez. Entonces aprendí que a menos que usted está dando a los usuarios un acceso a nivel de archivo (un valor no-no) se encuentra con el mismo problema usando el acceso directo a los archivos.

Desde una perspectiva de rendimiento que debe ser mejor almacenar los sonidos / imágenes como archivos y sólo mantener una referencia a la ubicación en la base de datos. Esto le ahorrará el tener que transferir los datos de la base de datos al servidor web y reconstituir el "archivo" a través de un controlador cada vez que se hace referencia. Por supuesto, el almacenamiento en caché podría ayudar a esto, pero todavía había pagar la pena en cada error de caché. Esta solución es también, por mi dinero, un poco menos complicada en términos del código que necesita ser desarrollado a pesar de que tienen problemas con colisiones y algún tipo de configuración de seguridad adicional (potencialmente) que hacer si está habilitando carga.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top