file del disco sul server o binario per i file audio e di immagine in SQL con applicazioni ASP.Net

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

Domanda

Sto costruendo un'applicazione web # ASP.Net C che utilizzerà un sacco di file audio e file di immagine. Considerando le prestazioni, sarebbe meglio per memorizzare tutti i file in SQL come tipo di dati di immagine e recuperare dal database o negozio / archiviare il file del disco sul server e memorizzare il percorso in SQL? Im curioso di sapere i pro ei contro -. Diverso da quello ovvio di spazio di archiviazione e la gestibilità

Nessuna soluzione corretta

Altri suggerimenti

Il mio attuale cliente sta attualmente esaminando le stesse opzioni. Ci sono alcuni compromessi da considerare:

Memorizzazione come tipo di dati IMAGE:

  • Hai solo bisogno di un backup del database, piuttosto che il DB e posti sul file system
  • Non c'è bisogno di preoccuparsi di file che vengono spostati senza il DB aggiornato con la nuova posizione o altri problemi con appesi i puntatori ai file inesistenti

Memorizzazione come un file con un percorso nel DB:

  • accesso leggermente più veloce (saremo quantificare questo nei prossimi giorni)

Inizialmente ho pensato che ci sarebbe anche un problema con la cache sul lato client di immagini. Ad esempio, quando .NET ottiene l'immagine fuori del DB browser client non può memorizzare nella cache che - sembra che una nuova immagine ogni volta. Poi ho imparato che a meno che non si stanno dando agli utenti l'accesso a livello di file (un titolo no-no) si esegue nello stesso problema con accesso diretto ai file.

Dal punto di vista delle prestazioni si dovrebbe essere meglio memorizzare i suoni / immagini come file e solo mantenendo un riferimento alla posizione nel database. Questo vi salverà da dover trasferire i dati dal database al server web e ricostituire il "file" tramite un gestore ogni volta che viene fatto riferimento. Naturalmente, la cache potrebbe aiutare questo, ma si sarebbe ancora pagare la pena per ogni cache miss. Questa soluzione è anche, per i miei soldi, un po 'meno complicata dal punto di vista del codice che deve essere sviluppata anche se avete problemi con le collisioni e alcune operazioni di configurazione sicurezza extra (potenzialmente) da fare se si abilita il caricamento.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top