Quando salvare le risorse (principalmente immagini) in DB e quando su Filesystem?

0

Per un'applicazione web che stiamo pianificando (una sorta di sistema di informazioni sui prodotti). Dobbiamo gestire tutte le risorse (immagini) dei prodotti.

Ci sono sistemi (sistemi wiki o DAM) che salvano le risorse nel DB stesso o solo un riferimento.

Quali sono i criteri per decidere se i file devono essere memorizzati su FS o DB?

Il sistema gestirà anteprime e metadati delle risorse.

Per una produzione di PDF è possibile che ne avremo bisogno sul FS, in altri casi è probabilmente meglio averli nel DB.

(Stiamo lavorando in un ambiente Windows Server con mongoDB e C #.)

Quando sarebbe uno svantaggio averlo sul file system (solo nei metadati del DB)?

O in quale situazione vince chiaramente l'approccio del solo DB?

Aggiornamento

Le domande collegate portano dei buoni punti.

  • la preoccupazione per i problemi di backup con DB più grandi: il GridFS di mongoDB è adatto a dati più grandi. Potremmo avere un DB di asset separato con un altro intervallo di backup per risolvere il problema del processo di backup più lungo.

  • Serializzazione e deserializzazione su FS: potrebbe costare molto tempo. Nel caso in cui abbiamo bisogno di accedere ad essi da strumenti di terze parti (ad esempio per la produzione di PDF).

posta Matthias 09.01.2015 - 09:34
fonte

1 risposta

2

È principalmente una domanda basata sull'opinione (ed è sicuramente sistema operativo e file file specifico), tuttavia:

probabilmente vorresti evitare di avere una singola directory con molte migliaia di file (è specifico per file system e sistema operativo, ma alcuni SO e SO potrebbero essere infelici), quindi preferisci dir01/subdir02/file0345.txt a justfile01020345.txt

probabilmente vuoi evitare di avere un sacco di file molto piccoli (ad esempio meno di 2 KByte).

Quindi potrebbe essere utile utilizzare un database per contenuti "piccoli" (ad esempio meno della metà o pochi megabyte) e utilizzare file per contenuti "grandi" (diversi megabyte ciascuno). A proposito, è possibile memorizzare nel database alcuni metadati relativi al file abbastanza grande (ad esempio, almeno memorizzare qualcosa correlato al nome del percorso).

Hai sicuramente bisogno di una strategia di backup e forse anche di una strategia di pulizia.

Leggi anche su blob -s

    
risposta data 09.01.2015 - 10:00
fonte

Leggi altre domande sui tag