/ / Przechowywanie obrazów - Pamięć SQL DB vs Azure Blob - sql, azure, baza danych azure-sql, azure-storage, azure-storage blob

Przechowywanie obrazów - SQL DB i Azure Blob storage - sql, azure, azure-sql-database, azure-storage, azure-storage-blobs

Piszę teraz nową aplikację, a niektóre podmioty w aplikacji mają obrazy (używane tylko do celów wyświetlania na stronie internetowej).

Chcę hostować moją aplikację na lazurowym później i próbuję dowiedzieć się, czy lepiej byłoby użyć pamięci Azure Blob do przechowywania wszystkich obrazów lub po prostu zapisać je w bazie danych?

Czym jest lepsza wydajność podczas ładowania obrazów na stronie?

  • SQL: Controller -> DB -> VIEW
  • Azure Blob: Controller -> Webcall to Azure DB -> VIEW

Czy ktoś mógłby mi wyjaśnić korzyści płynące z jednego z rozwiązań, abym mógł podjąć decyzję?

Odpowiedzi:

12 dla odpowiedzi № 1

Sposób projektowania schematu przechowywania bazy danych jest subiektywny, ale są cel rzeczy do rozważenia w twoim scenariuszu. Ja zaadresuję je i pozostawię ci „co powinienem wybrać” ...

Obiekty blob Azure Storage są przeznaczone do masowych danych „blokowych” (takich jak dokumenty, obrazy itp.). Coś w rodzaju bazy danych SQL jest zaprojektowane dla metadanych (rzeczy, które przeszukujesz / indeksujesz / zapytania).

Wszystko można zrobić za pomocą bazy danych SQL, a Tymusiałby się tylko martwić o zapytania SQL (i brzmi to tak, jakbyś był już zaznajomiony). SQL Server (i baza danych SQL) zawsze miały możliwość przechowywania treści binarnych za pomocą typu BLOB.

Podczas gdy Ty mogą przechowuj swoje obrazy w bazie danych SQL, znajdzieszże rozmiar Twojej bazy danych znacznie wzrasta, a nie tylko przechowujesz metadane z zapytaniami. Podczas gdy usługa bazy danych SQL pozwala skalować pamięć masową, znajdziesz większą skalę w pamięci masowej blob (do 500 TB) przy niższym koszcie niż usługa SQL Database. koszt przechowywania (dołączone dyski) odpowiadający blokom, wraz z kosztami maszyn wirtualnych.

Bloby pamięci masowej same w sobie nie zapewniająjęzyk zapytań - musisz znać nazwę kontenera i / lub blob. Aby uzyskać optymalne wyniki wyszukiwania, będziesz potrzebował bazy danych z możliwością przeszukiwania z twoimi metadanymi (np. SQL Database).

Jeśli przechowujesz swoje obrazy w blobach i odwołujesz się do nich za pomocą URI w bazie danych, będziesz mógł wysyłać zapytania do bazy danych, znaleźć URI obrazu, a następnie odpowiednio odczytać z pamięci blob.

Uwaga: W przypadku obiektów typu blob będziesz w stanie zapewnić bezpośredni dostęp do URI obrazu, na przykład do przeglądarki lub aplikacji (nawet jeśli obiekt blob jest oznaczony jako prywatny), co pozwala na ominięcie warstwy aplikacji podczas dostarczania zawartości binarnej (obrazu) do użytkownika końcowego. Bloby mogą być również buforowane w CDN, czego nie można wykonać za pomocą bazy danych SQL.

Który wybierzesz, zależy od ciebie; Po prostu podałem obiektywne powody, aby z nich korzystać.


4 dla odpowiedzi nr 2

Znacznie tańsze w BLOB.

Prawdopodobnie także będziesz szybciejtransfer jako BLOB. Teraz początkowe wyszukiwanie może być nieco szybsze z SQL, ale dla dużego obrazu BLOB wygra. SQL jest po prostu niezoptymalizowany dla dużych rzeczy, a BLOB jest.

I zachowujesz SQL swobodnie do obsługi krótkich rzeczy.