Ver Mensaje Individual
  #8  
Antiguo 24-07-2019
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Reputación: 20
movorack Va camino a la famamovorack Va camino a la fama
Como ya dije antes: "Depende de..."

En este articulo tienes los pros y contras de usar cada método.

File System vs. Database
Cita:
Sistema de archivos
Veamos algunos pros y contras involucrados en guardar archivos en el sistema de archivos.

Ventajas del sistema de archivos
  • El rendimiento puede ser mejor que cuando lo haces en una base de datos. Para justificar esto, si almacena archivos grandes en la base de datos, puede ralentizar el rendimiento porque una simple consulta para recuperar la lista de archivos o el nombre de archivo también cargará los datos del archivo si utilizó Select * en su consulta.
  • En un sistema de archivos, acceder a un archivo es bastante simple y ligero.
  • Guardar los archivos y descargarlos en el sistema de archivos es mucho más simple que en una base de datos, ya que una simple función "Guardar como" lo ayudará. La descarga se puede hacer dirigiendo una URL con la ubicación del archivo guardado.
  • La migración de los datos es un proceso fácil. Simplemente puede copiar y pegar la carpeta en el destino que desee y asegurarse de que se proporcionan permisos de escritura en su destino.
  • Es rentable en la mayoría de los casos expandir su servidor web en lugar de pagar por ciertas bases de datos.
  • Es fácil migrarlo al almacenamiento en la nube, es decir, Amazon S3, CDN, etc. en el futuro.

Contras del sistema de archivos
  • Vagamente embalado. No hay operaciones ACID (Atomicidad, Consistencia, Aislamiento, Durabilidad) en el mapeo relacional, lo que significa que no hay garantía.
  • Considere un escenario en el que sus archivos se eliminen de la ubicación manualmente o por algunos tipos de hacking. Es posible que no sepa si el archivo existe o no. Doloroso, ¿verdad?
  • Baja seguridad. Ya que sus archivos se pueden guardar en una carpeta donde debería haber proporcionado permisos de escritura, es propenso a problemas de seguridad e invita a problemas, como la piratería. Es mejor evitar guardar en el sistema de archivos si no puede darse el lujo de comprometerse en términos de seguridad.

Casos de uso
Si su aplicación es responsable de manejar archivos grandes (es decir, más de 5 MB) y la cantidad de archivos que se cargan.
Si su aplicación tendrá una gran cantidad de usuarios.

Diverso
Aunque el sistema de archivos tiene algunos costos y ciertas desventajas, una buena estructura de carpetas internas y la elección de una ubicación de la carpeta a las que los demás pueden ser un poco difíciles pueden ayudar.

Base de datos
Veamos algunos pros y contras involucrados en guardar archivos en el

Ventajas de la base de datos
  • La consistencia de ACID, que incluye una reversión de una actualización que es complicada cuando los archivos se almacenan fuera de la base de datos.
  • Los archivos estarán sincronizados con la base de datos y no podrán quedar huérfanos, lo que le da la ventaja en el seguimiento de transacciones.
  • Las copias de seguridad incluyen automáticamente archivos binarios.
  • Es más seguro que guardar en un sistema de archivos.

Contras de la base de datos
  • Es posible que tenga que convertir los archivos a blob para almacenarlos en la base de datos.
  • Las copias de seguridad de la base de datos serán más pesadas y pesadas.
  • La memoria es ineficaz. A menudo, los RDBMS están controlados por RAM, por lo que todos los datos deben ir primero a la RAM. Sí es cierto. ¿Alguna vez has pensado en lo que sucede cuando un RDBMS tiene que encontrar y ordenar datos? RDBMS rastrea cada página de datos, incluso la cantidad más baja de datos leídos y escritos, y debe rastrear si está en la memoria o si está en el disco, si está indexada o si está ordenada físicamente, etc.

Nota: omití algunos puntos contradictorios para restringir el contenido porque al comparar dos cosas, a menudo terminamos encontrando que los pros y los contras de una son opuestos a los otros.

Casos de uso
Si el archivo de su usuario necesita estar más estrechamente acoplado, protegido y es confidencial.
Si su aplicación no exigirá una gran cantidad de archivos de una gran cantidad de usuarios.

Diverso
Tenga cuidado con su consulta de selección. Evite consultas Select * no deseadas, que con frecuencia pueden recuperar los datos del archivo innecesariamente. El almacenamiento en caché de los datos del archivo puede ayudar a reducir el uso de la memoria y la base de datos.

Si está utilizando SQL Server 2008 o una versión superior, utilice Filestream. Filestream permite almacenar datos de blob en NTFS al tiempo que garantiza la coherencia transaccional entre los datos de blob no estructurados con datos estructurados en DB.

Para explorar más sobre Filestream, consulte este enlace.

Puede que te des cuenta de que aún no he dicho cuál es la mejor opción. La respuesta es que depende.

Sé que esa respuesta puede ponerlo furioso, pero honestamente, la clave está en analizar sus necesidades y anticipar los peores casos de antemano.

Basándonos en los requisitos de nuestros productos, en Habile optamos por el sistema de archivos cuando manejamos cantidades masivas y archivos pesados, y vamos a la base de datos en los casos en que tenemos más archivos ligeros y menos.

Sin embargo, adaptarse a la función Filestream del servidor SQL 2008 podría ser una buena prueba. Entonces, en Habile hemos iniciado la incorporación de Filestream. Le recomendamos que haga lo mismo si puede pagarlo.

Porque en el mundo de la supervivencia de Fittest, es importante utilizar la tecnología a su máximo potencial.
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita