Pregunta

¿Alguien puede darme algunos consejos sobre cómo guardar un archivo de imagen en DB en C#? Guardaré muchas imágenes, entonces, ¿cuál es la mejor manera de reducir el espacio que necesitará? Actualmente estoy usando el campo Varbinary (Max) en DB.

¡Gracias!

¿Fue útil?

Solución

Si debe almacenar el archivo real en SQL, asegúrese de poner algunas restricciones alrededor del tamaño de la imagen y asegúrese de planificar correctamente el tamaño de la base de datos: ¿cuántas imágenes y de qué tamaño espera?

Si debe almacenarlo en SQL, mis preferencias es tenerlo automáticamente en su propia base de datos SQL. De esta manera, cualquier problema de rendimiento que me encuentro con estas imágenes no está afectando al resto de mi base de datos.

Ahora, si no tiene que almacenar las imágenes en una base de datos SQL, entonces creo que esto solo está llamando para hacerse con Azure Blob Storage. Ve a echarle un vistazo: te dará lo que quieres en un sistema muy eficiente.

Si no puede usar Azure, debe armar una clase que manejará la lectura/escritura/búsqueda de imágenes en un sistema de archivos. Guardar en el sistema de archivos (hecho correctamente) funcionará mucho mejor que guardar en SQL.

Otros consejos

Eso estaría bien. Sin embargo, si estas imágenes son tan grandes y a su DBA ya no le gusta OYU por ponerlas allí, podría colocarlas en un viaje en algún lugar y almacenar la ubicación en el DB.

Supongo que hay muchas maneras de manejar esto. Simplemente pese sus pros y contras.

Te acabo de dar una alternativa.

No es una buena idea almacenar imágenes en la base de datos. Puede almacenar las URL a las imágenes.

¿Qué formato es la imagen y qué tecnología de base de datos está utilizando?

Una opción es convertir las imágenes en una matriz binaria y empujar esto a su base de datos. Encontré un buen código sobre cómo lograr esto en CodeProject:

http://www.codeproject.com/kb/aspnet/imageindatabase.aspx

Como dijo Magnus, los filessames no se almacenan en las páginas de un DB, por lo que no afecta el rendimiento.

Aunque, almacenar archivos en el DB significa que sus copias de seguridad de DB se volverán mucho más grandes.

Alguien más mencionó almacenar solo las URL. Esta también es una gran idea y probablemente la más por formante para una configuración simple.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top