2011-12-15 5 views
2

가능한 중복 :
Storing Images in DB - Yea or Nay?이미지를 DB 또는 서버에 저장 하시겠습니까?

내가 몇 가지 정보를 업로드 할 포럼을 가질 것이다 asp.net MVC 사이트를 제작하고있다. 이미지를 업로드 할 수 있기를 원합니다. 그러나 나는이 이미지를 데이터베이스에 저장해야하는지 또는 파일 서버에 저장해야하는지 잘 모르겠습니다.

200Kb 이상의 이미지는 보이지 않습니다 (아마도 매우 높음). 나는 평균이 50kb 이하가 될 것이라고 생각한다.

그래서 사용하는 것이 더 좋습니까?

답변

3

는 가치에 따라 달라집니다 그리고 당신이 그들과 함께 일을하는지 :

이미지를 데이터베이스에 :

관련 데이터, 데이터가 다른 마이그레이션 할 때 분리되는 것을 전혀 기회와
  • 라이브 (그들은 데이터베이스와 모든이기 때문에) 쉽게 시스템
  • 는 조작
  • 더 안전하고 더 열심히 백업하는 중 실수로 또는 의도적으로
파일 시스템에 6,

이미지

    DB 서버 스토리지에
  • 저장 공간 - 당신은 쉽게
  • 쉽게 코드를 검색 DB 공간을 지급하는 공유 환경에 있다면 중요 할 수있다 reference in html

모든 상황에 대해 "최선"이라고 생각하지는 않지만 웹 사이트의 경우 파일 시스템이 더 나을 것 같습니다.

3

개인적으로 이미지를 서버에 저장 한 다음 각 테이블에 저장된 경로를 선택합니다. 성능이 현명하면 훨씬 더 좋을 수 있습니다.

1

몇 년 전에 부동산 응용 프로그램을 개발했으며 데이터베이스의 각 속성에 대한 이미지를 저장하기로 선택했습니다. 성능은 끔찍했습니다. 그런 다음 파일 시스템에 이미지를 저장하도록 변경했는데 (수행 시간이 꽤 오래 걸렸습니다) 성능이 훨씬 빨라졌습니다.

데이터베이스에 저장해야하는 항목은 큰 텍스트 문서이므로 SQL Server의 전체 텍스트 검색과 같은 용도로 사용할 수 있습니다. 그러나 특히 페이지 당 잠재적으로 여러 개의 이미지가있는 경우 데이터베이스에 이미지를 저장하지 않습니다.

URL을 데이터베이스에 저장 한 다음 파일 시스템에서 이미지를 가져옵니다.

+0

저는 약 5 주사를 앞두고 CMS를 개발했으며 우리는 긍정적 인 의미에서 성능 테리 피크 (perforamnce terrifivc)를 발견했습니다. 그렇다면 데이터베이스에서 이진 데이터를 효율적으로 처리하는 방법을 모르는 것이 아닙니까? – TomTom

5

이미지에 대한 액세스를 제어 할 필요가없는 경우 (즉, 역할 기반이 아닌 공개 인 경우) 서버에 저장하고 데이터베이스의 경로에 대한 링크를 유지합니다.

DB 솔루션으로 갈 때의 문제점은 스트리밍해야한다는 것입니다. 이미지가 많은 포럼 페이지에서 성능 드래그가 될 수 있습니다.

그리고 항상 말했듯이 웹 서버가 파일을 훨씬 더 잘 처리 할 수있는 이유는 무엇입니까?

+1

+1 그리고 당신은 (이미지를 업로드하는 것뿐만 아니라 이미지를 보여줄 것이라고 가정 할 때) 이미지를 브라우저 사이드에 캐쉬 할 수 있다는 이점을 얻습니다. (모델/뷰 모델에서 브라우저로 이미지를 가져 오는 것은 많은 데이터베이스를 필요로합니다. 동작). –

1

SQL Server 데이터베이스에서 미디어를 저장하고 검색하는 효율적인 스트리밍 기반 솔루션의 예가 있습니다 : Download and Upload Images from SQL Server via ASP.NET MVC 및 후속 FILESTREAM MVC: Download and Upload images from SQL Server.

나는 또한 To BLOB or not to BLOB을 읽을 것을 권장합니다.

달리 말하면 특별한 이유가없는 한 파일 시스템에 미디어를 저장하는 것이 좋습니다. HHTTP 서버는 단순히 파일을 스트리밍하는 것에서 매우 효율적입니다. DB를 사용하는 구체적인 이유는 액세스 제어, 자체 포함 백업 복원 또는 DB 중심의 고 가용성/재해 복구 솔루션과 같은 것입니다.

가장 빠른 응답은 브라우저가 묻지 않을 때입니다. :) 대답 aching tags을 사용하십시오.

관련 문제