Domanda

Qualcuno può darmi qualche consiglio su come salvare un file di immagine in DB in C #? Sarò risparmiare un sacco di immagini in modo che cosa è il modo migliore per ridurre lo spazio si avrà bisogno? Attualmente sto varbinary campo (max) utilizzando nel DB.

Grazie!

È stato utile?

Soluzione

Se è necessario archiviare il file vero e proprio in SQL quindi assicuratevi di mettere alcune limitazioni intorno al formato dell'immagine e assicuratevi di pianificare correttamente il dimensionamento del database -? Quante immagini e di che dimensione si aspetta

Se è necessario conservarlo in SQL le mie preferenze è quello di avere automaticamente seduti nel proprio database SQL. In questo modo eventuali problemi di prestazioni mi imbatto in queste immagini non sta interessando il resto della mia base di dati.

Ora, se non si dispone di memorizzare le immagini in un database SQL, allora penso che questo è solo chiamando essere fatto con Azure Blob archiviazione. Andare a dare un'occhiata a questo -. Che vi darà quello che vuoi in un sistema molto efficiente

Se non è possibile utilizzare Azure allora si dovrebbe mettere insieme una classe che gestirà la lettura / scrittura / ricerca di immagini in un file system. Salvare il file system (fatto correttamente) funziona molto meglio di risparmio a SQL.

Altri suggerimenti

che sarebbe bene. tuttavia, se queste immagini sono così grandi e il vostro DBA potrebbero non come Oyu più per metterli in là, si potrebbe metterli su una qualche unità e memorizzare la posizione nel DB.

Credo che ci sono molti modi si potrebbe gestire questa situazione. Basta pesare le pro e contro.

ho appena dato un'alternativa.

Non è una buona idea per memorizzare le immagini nel database. È possibile memorizzare gli URL per le immagini.

In quale formato sono l'immagine e ciò che la tecnologia del database stai usando?

Una possibilità è quella di convertire le immagini in un array binario e spingere questo al database. Ho trovato un certo codice bello su come raggiungere questo obiettivo sopra a CodeProject:

http://www.codeproject.com/KB/aspnet/ImageInDatabase.aspx

Come Magnus ha detto, filestreams non vengono memorizzati nelle pagine di un DB, in modo che non influisce sulle prestazioni.

Anche se, la memorizzazione di file nel DB significa i backup DB diventeranno molto più grande.

Qualcun altro ha menzionato la memorizzazione solo gli URL. Questa è anche una grande idea e probabilmente la più per formante per una semplice configurazione.

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