Personalmente consiglio di archiviare le immagini nel database. Naturalmente presenta sia vantaggi che svantaggi.
Vantaggi della memorizzazione dei dati BLOB nel database:
- È più facile mantenere sincronizzati i dati BLOB con gli elementi rimanenti nella riga.
- Il backup dei dati BLOB viene eseguito nel database. Avere un unico sistema di archiviazione può facilitare l'amministrazione.
- È possibile accedere ai dati BLOB tramite il supporto XML in MySQL, che può restituire una rappresentazione codificata in base 64 dei dati nel flusso XML.
- Le operazioni di ricerca full-text (FTS) MySQL possono essere eseguite su colonne che contengono dati di caratteri a lunghezza fissa o variabile (incluso Unicode). È inoltre possibile eseguire operazioni FTS su dati basati su testo formattato contenuti all'interno di campi immagine, ad esempio documenti Microsoft Word o Microsoft Excel.
Svantaggi della memorizzazione dei dati BLOB nel database:
Considerare attentamente quali risorse potrebbero essere archiviate meglio nel file system piuttosto che in un database. Buoni esempi sono le immagini a cui si fa riferimento in genere tramite HTTP HREF. Questo perché:
- Il recupero di un'immagine da un database comporta un sovraccarico significativo rispetto all'utilizzo del file system.
- L'archiviazione su disco su SAN di database è in genere più costosa dell'archiviazione su dischi utilizzati nelle server farm Web.