2010-12-29 23 views
7

¿Cuál es la mejor práctica para almacenar archivos grandes de fotos/texto en el servidor sql? Dejando a un lado la necesidad de escalabilidad y solo estamos trabajando con 1 servidor.almacenamiento de archivos de gran tamaño en el servidor sql

Siento que el almacenamiento de una ruta de archivo en SQL en lugar de una burbuja es mejor. ¿Es esto cierto? Si tuviéramos que escalar el software, deberíamos seguir este método.

Respuesta

9

Depende del tamaño de los archivos.

Hay una buena documento técnico de Microsoft sobre el tema, here.

objetos más pequeños que 256K se almacenan mejor en una base de datos, mientras que los objetos de más de 1M se almacenan mejor en el sistema de archivos. Entre 256K y 1M, la lectura: escribir relación y la tasa de objeto sobreescriben o reemplazo son factores importantes

Por supuesto, sus conclusiones son específicas de SQL Server (2005 y 2008 R2).

+0

papel sorprendente, agradable encontrar! – gh9

+0

¡Buen papel, aunque sea específico del servidor MS-SQL! Depende también del número de imágenes y de las especificaciones de la aplicación. Probablemente sea más seguro que BLOB, ya que es menos propenso a errores. –

1

Es más que nada una cuestión de utilizar la herramienta adecuada para el trabajo. Se ha invertido mucho tiempo y esfuerzo en optimizar una base de datos relacional con el fin de almacenar datos relacionales. Se ha invertido mucho tiempo y esfuerzo en optimizar los sistemas de archivos con el fin de almacenar archivos.

El primero puede ser utilizado para llevar a cabo parte del trabajo de esta última, pero a menos que haya una muy buena razón para no utilizar este último entonces es la herramienta más adecuada para el trabajo. En casi todos los casos que he encontrado, el almacenamiento de la ruta del archivo (y otra información relevante sobre el archivo que desee) en el DB y el archivo real en el FS es un enfoque más adecuado para usar las herramientas disponibles.

1

Es una mala idea. A menos que tenga una razón muy específica para almacenar archivos en los datos. Ya se ha discutido aquí: Storing Images in DB - Yea or Nay?

Si usted insiste, lea la mejor práctica para hacerlo :) aquí Best Practices for uploading files to database

+0

No pasa una semana sin que maldiciónmos a quien sea que haya decidido poner nuestras imágenes en la base de datos. Supongo que parecía una buena idea en ese momento y que nunca tendríamos muchas imágenes, pero no es una buena idea. – dwidel

+0

:) especialmente cuando el título de su pregunta dice, "almacenar archivos grandes en el servidor sql" En grande quiero decir, más de un megabyte. Pero, incluso si es más pequeño, no almacenaría en DB. Solo porque, como dijo @David correctamente, no es la herramienta adecuada para el trabajo. Archivos: es posible que desee cambiar el tamaño, comprimir, dividir o probablemente desee servir a través de Amazon S3. No puedo hacer esto rápidamente, si están en DB. – Nishant

Cuestiones relacionadas