7
votes

Stockez les images dans la base de données ou sur le système de fichiers

Dupliqué possible:
Stockage d'images dans DB - Oui ou Nay?

est-il plus rapide et plus fiable pour stocker des images dans le système de fichiers ou dois-je les stocker dans une base de données?

Disons que les images ne seront pas supérieures à 200 Mo. L'objectif est un accès rapide et fiable.

En général, comment les gens décident-ils entre stocker des fichiers (par exemple, images, pdfs) dans le système de fichiers ou dans la base de données?


1 commentaires

J'adore ça, un programmeur avec le "Crashalot" de Moniker. :-)


4 Réponses :


1
votes

Avec l'approche de la base de données, vous n'avez qu'une seule chose à vous connecter. Si vos utilisateurs sont distribués, cela pourrait être plus simple. Notez que si les images ne sont pas accessibles trop fréquemment, les problèmes d'efficacité ne peuvent pas importer.


0 commentaires

14
votes

Opinion personnelle: je stocke toujours des images sur le système de fichiers et stocker uniquement un fichier de fichier dans la base de données. Dans de nombreuses situations, des bases de données sont stockées sur le stockage rapide (lecture: stockage coûteux, 15k RPM ou SSD). Les images ou d'autres fichiers peuvent généralement être stockées sur plus lentement (lisez: des lecteurs de tours plus chers, de 7,2k RPM).

Je trouve que c'est le meilleur, car cela permet à la base de données de rester de petite taille. En général, les bases de données stockent bien les "données". Ils peuvent rechercher et récupérer de petits bits de données rapidement. Les systèmes de fichiers stockent des "fichiers" bien, ils sont optimisés pour trouver et récupérer des bits plus gros de données rapidement.

Évidemment, il y a des compromis aux deux approches, et il n'y aura pas d'une taille unique; Cependant, il peut y avoir des cas d'utilisation où stocker des images dans la base de données est une bonne chose, s'ils sont tous assez petits et que vous n'anticiez pas beaucoup d'entre eux, et votre base de données est sur le même support de stockage que votre partage de fichier , alors il est probablement logique de laisser tomber les images directement dans la base de données.

En tant que note latérale, SQL Server 2008R2 a un type de champ filestream, qui peut fournir le meilleur des deux mondes, je ne l'ai pas encore utilisé, donc je ne peux donc pas parler à quel point cela fonctionne bien.


1 commentaires

Bien écrit - et soulignant que certaines bases de données ont des dispositions permettant d'accéder à des données primaires hors base de données.



5
votes

stocker des fichiers / images dans la base de données si vous avez besoin de suivre:

  • Contrôle d'accès
  • Versioning
  • checkin / check out
  • Recherche sur la base de métadonnées

    qui a été la conception de la grande CMS comme SharePoint a été.

    Toutefois, si votre contenu est beaucoup plus statique et que vous n'allez pas changer au fil du temps, vous pouvez accéder au système de fichiers et activer les optimisations / cache sur le serveur Web.


1 commentaires

Si je n'ai besoin que d'un contrôle d'accès, est-il possible d'effectuer un contrôle d'accès avec le serveur Web et le système de fichiers (et évitant ainsi de stocker les images dans la base de données)? Comment faire ça?



0
votes

Tout d'abord, vous devez savoir que dans des bases de données, vous ne pouvez pas stocker de fichiers plus gros que 8 Mo, Levinig que, donc je pense que c'est préférable de stocker des fichiers dans le système et de petites images de la base de données


1 commentaires

Cela dépend de la base de données. SQL Server peut stocker jusqu'à 2 Go (ou peut-être "juste" 1 Go?).