이미지 저장 - SQL DB vs Azure Blob 스토리지
현재 새로운 어플리케이션을 작성 중인데, 어플리케이션 내의 특정 엔티티가 이미지(웹사이트 표시 목적으로만 사용)를 가지고 있습니다.
나중에 애플리케이션을 Azure에서 호스팅하고 싶은데, Azure Blob 스토리지를 사용하여 모든 이미지를 저장하는 것이 좋을지 DB에 저장하는 것이 좋을지 고민하고 있습니다.
웹 사이트에 이미지를 로드할 때 어떤 성능이 더 우수합니까?
- SQL: 컨트롤러 -> DB -> VIEW
- Azure Blob: 컨트롤러 -> Azure DB에 대한 웹콜 -> 보기
제가 결정을 내릴 수 있도록 어떤 솔루션의 장점을 설명해 주실 수 있습니까?
데이터베이스 스토리지 체계를 설계하는 방법은 주관적이지만 시나리오에서 고려해야 할 객관적인 사항이 있습니다.그런 건 내가 알아서 하고, '어느 쪽을 선택해야 할지'는 자네에게 맡기겠네...
Azure 스토리지 블롭은 대량 "블록" 데이터(문서, 이미지 등)용으로 설계되었습니다.SQL Database와 같은 것은 메타데이터(검색/인덱스/쿼리)용으로 설계되어 있습니다.
SQL Database를 통해 모든 작업을 수행할 수 있습니다. SQL 쿼리에 대한 걱정만 있으면 됩니다(이미 익숙한 질문인 것 같습니다).SQL Server(및 SQL Database)는 항상 BLOB 유형을 통해 바이너리 콘텐츠를 저장할 수 있습니다.
SQL 데이터베이스에 이미지를 저장할 수 있지만 쿼리 가능한 메타데이터만 저장하는 것이 아니라 데이터베이스 크기가 크게 증가합니다.또한 SQL Database 서비스를 통해 스토리지를 확장할 수 있지만 BLOB 스토리지에서는 더 큰 규모(최대 500개)가 제공됩니다.SQL Database 서비스보다 저렴한 비용으로 TB)를 제공합니다.VM에서 SQL Server를 실행하는 경우에도 VM 비용과 함께 BLOB에 해당하는 스토리지 비용(접속 Disk)이 계속 발생합니다.
스토리지 블럽 자체는 쿼리 언어를 제공하지 않습니다.컨테이너 및/또는 BLOB 이름을 알아야 합니다.따라서 최적의 검색을 위해서는 메타데이터가 포함된 쿼리 가능한 데이터베이스(예: SQL 데이터베이스)가 필요합니다.
이미지를 Blob에 저장하고 데이터베이스의 URI를 통해 참조하면 데이터베이스에 대해 쿼리하고 이미지의 URI를 찾은 후 BLOB 스토리지에서 적절하게 읽을 수 있습니다.
주의사항:BLOB를 사용하면 브라우저 또는 앱에 대한 직접 이미지 URI 액세스를 제공할 수 있습니다(BLOB가 개인으로 표시되더라도). 최종 사용자에게 바이너리(이미지) 콘텐츠를 제공할 때 앱 계층을 무시할 수 있습니다.SQL 데이터베이스에서는 할 수 없는 CDN에 BLOB가 캐시될 수도 있습니다.
당신이 선택하는 것은 궁극적으로 당신에게 달려있다. 나는 단지 각각의 사용을 위한 객관적인 이유를 제공했을 뿐이다.
BLOB에서는 훨씬 저렴합니다.
당신도 BLOB로 더 빠른 전송을 할 것입니다.SQL을 사용하면 초기 조회가 조금 더 빠를 수 있지만 큰 이미지의 경우 BLOB가 이길 것으로 생각합니다.SQL은 단순히 큰 일에 최적화되지 않았으며 BLOB는 최적화되어 있습니다.
또한 SQL을 무료로 유지하여 짧은 데이터를 제공할 수 있습니다.
언급URL : https://stackoverflow.com/questions/39650052/storing-images-sql-db-vs-azure-blob-storage
'programing' 카테고리의 다른 글
| WPF의 심플한(내 생각에) 수평선? (0) | 2023.04.20 |
|---|---|
| Bash에서 디렉토리의 부모 가져오기 (0) | 2023.04.20 |
| 표시된 뷰 컨트롤러의 대화형 삭제 사용 안 함 (0) | 2023.04.20 |
| Azure AD의 "Request API permissions"에서 "Application permissions"가 비활성화되어 있는 이유는 무엇입니까? (0) | 2023.04.20 |
| {x: Null} 대투명? (0) | 2023.04.20 |