6

Je suis en train d'écrire une nouvelle application pour le moment et certaines entités de l'application ont des images (juste utilisées à des fins d'affichage sur le site Web).Stockage d'images - stockage SQL DB vs Azure Blob

Je veux héberger mon application sur azure plus tard et j'essaie de savoir s'il serait préférable d'utiliser Azure Blob storage pour stocker toutes les images ou simplement les stocker dans la base de données? Quelles sont les meilleures performances en termes de performances lors du chargement des images sur le site Web?

  • SQL: Controller -> DB -> VOIR
  • Azure Blob: Controller -> Webcall Azure DB -> VOIR

Quelqu'un pourrait-il s'il vous plaît me expliquer les avantages de l'une solution pour que je peut me décider?

+0

Je ne sais pas trop sur Azure pour l'hébergement, les images dans les bases de données peuvent être un sujet intéressant. Maintenir l'intégrité référentielle en les stockant dans la base de données est une bonne chose, mais la taille de la base de données n'est pas géniale non plus. Une pensée, allez-vous utiliser azure db aussi? Si oui, mon hypothèse serait que le stockage serait moins cher les hébergeant dans le stockage Azure Blob plutôt que de payer pour des ressources DB plus importantes, mais c'est purement une hypothèse .... – Matt

+0

Merci Matt, bons points. Oui utilisera Azure DB aussi - et le blob est def moins cher ... :) – Nik

+0

bien alors je suppose que cela se résume à si la performance est acceptable et je m'excuse mais je ne peux pas peser dedans car je n'utilise pas d'azur . Bravo – Matt

Répondre

9

La manière dont vous concevez votre schéma de stockage de base de données est subjective, mais il existe objectif éléments à prendre en compte dans votre scénario. J'y répondrai, et laisserai le "que devrais-je choisir"

Azure Les blobs de stockage sont conçus pour des données en bloc "en bloc" (telles que des documents, des images, etc.). Quelque chose comme base de données SQL est conçu pour les métadonnées (choses que vous recherchez/index/requête). Tout peut être fait via une base de données SQL, et vous n'aurez qu'à vous soucier des requêtes SQL (et vous avez déjà l'impression que c'est quelque chose que vous connaissez déjà). SQL Server (et SQL Database) ont toujours eu la possibilité de stocker du contenu binaire via son type BLOB.

Alors que vous pouvez stocker vos images dans la base de données SQL, vous constaterez que la taille de votre base de données augmente considérablement, vs simplement stocker des métadonnées interrogeables. Et tandis que le service de base de données SQL vous permet de dimensionner votre stockage, vous trouverez une plus grande échelle dans le stockage blob (jusqu'à 500 To) à un coût inférieur au service de base de données SQL. Si vous exécutez SQL Server dans une machine virtuelle, les coûts de stockage (disques joints) seront toujours équivalents aux blobs, ainsi que les coûts de la machine virtuelle.

Les blobs de stockage, en eux-mêmes, ne fournissent pas de langage de requête - vous devez connaître le nom du conteneur et/ou du blob. Ainsi, pour une recherche optimale, vous aurez besoin d'une base de données interrogeable avec vos métadonnées (par exemple, base de données SQL). Si vous stockez vos images dans des objets BLOB et que vous les référencez via URI dans votre base de données, vous pourrez interroger votre base de données, trouver l'URI de l'image, puis lire à partir du stockage BLOB de manière appropriée. Remarque: Avec les blobs, vous pouvez fournir un accès URI direct à un navigateur ou à une application (même si le blob est marqué comme privé), ce qui vous permet de contourner votre niveau d'application. lors de la livraison de contenu binaire (image) à l'utilisateur final. Blobs peuvent également être mis en cache dans le CDN, ce que vous ne pouvez pas faire avec la base de données SQL.

Ce que vous choisissez dépend de vous; J'ai simplement fourni les raisons objectives d'utiliser chacune d'elles.

+0

Merci beaucoup pour l'explication détaillée! Je vais essayer les BLOB! :) – Nik

+0

@ user2118781 Comment ça s'est passé? Est-ce que ça fonctionne bien? Je décide aussi de la même chose. Je développe une application mobile. –

+0

Je suis allé pour le stockage BLOB pour stocker mes images, etc et cela fonctionne parfaitement! Ne le ferais pas différemment! – Nik

3

Beaucoup moins cher en BLOB.

Vous allez probablement aussi obtenir un transfert plus rapide en tant que BLOB. Maintenant, la recherche initiale peut être un peu plus rapide avec SQL mais pour une grande image je pense que BLOB gagnerait. SQL est tout simplement pas optimisé pour les grandes choses et BLOB est.

Et vous gardez SQL libre pour servir des choses courtes.

+0

Merci beaucoup pour l'explication détaillée! Je vais essayer les BLOB! :) – Nik