Oracle
 sql >> Database >  >> RDS >> Oracle

Memorizzazione delle immagini caricate:dovrebbe essere memorizzata sul server o nel database?

Sì, puoi utilizzare i BLOB per i dati binari in Oracle. (E molti altri database.) Li usiamo qui per archiviare file PDF.

L'ho visto fare in entrambi i modi. Archivia le immagini nel database o archivia le immagini nel file system e quindi salva il nome del file nel database.

Vantaggi dell'archiviazione nel database

È tutto a posto nel database. Estrai un record, l'immagine associata è proprio lì con esso.

Ottieni l'integrità dei dati tra il file e i dati associati (presuppone una buona progettazione dello schema, ovviamente.)

Un'operazione logica per ottenere dati e immagini.

Trovo più difficile e costoso ridimensionare un database per contenere molti dati binari rispetto all'alternativa al file system.

Svantaggi dell'archiviazione nel database

Non tutti gli strumenti semplificheranno la navigazione delle immagini.

Non è possibile accedere facilmente alle immagini dal Web.

A seconda della dimensione e della quantità del file, potresti ritrovarti con molti dati grezzi in alcune delle tue tabelle.

Il caricamento e l'archiviazione dei dati BLOB non è sempre semplice. (Recentemente ho scritto un tipo di dati personalizzato per Hibernate, ad esempio, per gestire i nostri PDF in blob.)

Vantaggi del file system

Probabilmente più efficiente per leggere e scrivere i file.

Se desideri pubblicare l'immagine sul Web, puoi farlo direttamente dal file system.

È più facile sfogliare le immagini durante il debug e molti strumenti gratuiti per farlo.

Ritengo sia più semplice ridimensionare un'applicazione quando si inseriscono BLOB nel file system.

Svantaggi del file system

Problemi di integrità/coerenza dei dati. Cambia qualcosa sulla struttura del file e hai un altro passaggio da fare nel database.

È un'altra cosa di cui eseguire il backup.

Molteplici operazioni logiche (lettura da database, lettura da file system) per ottenere immagini e dati.