Il famoso Tom Kyte ha scritto che loro (l'Oracle) stanno usando il database Oracle come file server e funziona perfettamente bene, anche più velocemente del normale filesystem, con piena transazionalità, nessuna perdita di prestazioni e con un singolo backup.
Sì, ma nota che sono i produttori del DB Oracle e per qualsiasi altro utente ci sono problemi di costo. L'utilizzo di DB commerciali come Oracle per la memorizzazione di file è semplicemente inefficace.
Tuttavia, con PostgreSQL, ad esempio, puoi semplicemente eseguire un'altra istanza DB solo per l'archiviazione blob. Hai quindi pieno supporto transazionale. Ma la transazionalità costa spazio al DB. È necessario che il database memorizzi più istanze di blob per più transazioni simultanee. Su PostgreSQL è il più doloroso, dato che questo database memorizza i duplicati dei BLOB creati per la transazione, anche se non sono più necessari, fino a quando il processo VACUUM non viene eseguito.
Con la memorizzazione del filesystem, d'altra parte, devi essere molto attento quando qualcuno modifica il file, perché la transazione può essere ripristinata e la copia del file deve essere conservata fino a quando la vecchia versione non è più visibile.
Nel sistema in cui i file vengono solo aggiunti e cancellati e l'accesso transazionale ai file non è un problema, l'archiviazione del filesystem sarà IMHO la scelta migliore.