데이터베이스 또는 데이터베이스 링크가있는 파일에 이미지를 저장 하시겠습니까?


22

이미지 파일을 데이터베이스에 저장하는 것이 적절합니까? 또는 파일 자체를 서버에 유지하면서 파일 경로 만 데이터베이스에 저장하는 것이 더 좋을까요?

이 작업을 수행하는 다른 방법이 있습니까?

답변:


22

데이터베이스가 아닌 파일 시스템에 이미지를 저장하는 것이 좋습니다.

데이터베이스에 이미지를 저장하면 몇 가지 단점이 있습니다.

  • 데이터베이스가 예기치 않게 커질 수 있습니다. 때로는 공간이 문제입니다. 예를 들어 SQLServer express에서는 4GB 제한이 있습니다.

  • 예를 들어 SQLServer에서 Oracle로 전환하는 경우 데이터 마이그레이션이 어려울 수 있습니다.

  • 쿼리가 매우 느려질 수 있으며 데이터베이스로드가 높습니다.

  • 이미지가 파일 시스템에 있고 다른 응용 프로그램이 다른 데이터베이스를 사용하는 경우 다른 응용 프로그램과의 상호 운용성이 더 좋습니다. 직접 액세스 할 수 있으며 데이터베이스 도구가 필요하지 않습니다.

  • 전반적인 성능 저하

  • 어쨌든 데이터베이스에서 이미지를 검색 할 때 임시 파일을 작성해야합니다. 불필요합니다.

이러한 단점은 데이터베이스에 저장된 이미지의 경로를 파일 시스템과 동기화하는 비용보다 훨씬 높습니다. 데이터베이스에 이미지를 저장하는 것이 더 좋은 특별한 경우는 거의 없습니다.


11

: SQL Server 2005의 연구와 NTFS 파일 시스템 (마이크로 소프트) CRUD 성능을 비교하는 BLOB의 제품에 BLOB 여부를 . 이 연구는 웹 응용 프로그램에서도 수행되었습니다. 다른 데이터베이스 (MySQL)를 나열했으며 PHP 사이트에 Windows Server를 사용하지 않는다고 가정하므로 다른 기술에 대해 비슷한 연구를 한 경우 흥미로울 것입니다.

파일 크기에 따라 다릅니다. SQL Server는 256K 이하의 얼룩을 선호하고 파일 시스템은 1MB 이상의 파일을 선호합니다. 이 연구의 파일 시스템은 데이터베이스보다 조각화를 더 잘 처리하므로, 이러한 파일을 지속적으로 업데이트하거나 시간이 지남에 따라이 시스템이 커지면 조각화는 파일 시스템이 더 나은 작업을 수행하는 데 큰 요인이 될 것입니다.

이러한 파일을 유지 관리하는 사이트의 책임을 결정해야합니다. 보험 청구 담당자가 사고 사진을 업로드하도록 사이트를 구축하는 경우 트랜잭션 제어 기능이 더 좋으며 해당 파일이 서버에 있는지 확인하십시오. 훌륭한 데이터베이스가이를 위해 개발자에게 압력을가했습니다.

설계 중에는 복제, 백업, 재해 복구, 조각화, 남은 디스크 용량 및 시간 경과에 따른 성능을 고려해야합니다. 이것은 이전 버전의 SQL Server에 대한 한 가지 연구이며 다른 데이터베이스 제조업체와 마찬가지로 큰 파일과 이진 파일을 처리하는 것이 주요 경쟁 분야라고 생각합니다.


통합 솔루션을 고려할 수도 있습니다. 예를 들어, SQL Server에는 FILESTREAMRemote Blob Store가 있습니다.
페르난도 코 레이아

4

대량의 이미지가있는 경우 데이터베이스에 이미지를 저장하면 파일 시스템 레벨에서 inode가 부족 해지는 문제를 제거 할 수 있습니다.

그러나이 문제는보다 적절한 파일 시스템을 사용하고 조직에서 해당 파일 시스템에 대해 권장되는 모든 조치를 사용하여 해결하는 것이 가장 좋습니다.

그렇지 않으면 데이터베이스에 이미지를 저장하면 리소스가 완전히 낭비됩니다. 말씀하신대로 경로를 저장하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.