2011-06-11 4 views
10

이 질문은 혼란 스럽습니다. 그래서 나는 전문가의 목소리를 들어야한다고 생각했습니다!php : 이미지를 MySQL Blob로 저장 하시겠습니까?

폴더에 이미지를 업로드하고 mysql에 대한 링크를 저장하는 것이 좋으며, img 자체를 blob mysql 필드에 업로드하는 것이 더 낫습니다.

당신에게 나는 종종 데이터베이스에 이미지를 저장하는 시스템을 구축

+0

폴더에 이미지를 업로드하고 mysql에 대한 링크를 저장하는 것이 좋은 방법이라고 생각합니다. – NewUser

답변

20

대단히 감사합니다,이 일에 장점과 단점이있다.

장점 : 당신이 당신의 웹 사이트/데이터베이스를 마이그레이션하는 경우 데이터가 한 장소에 보관

  • 모든

    이 이미지는 단지
  • 그것 쉽게 삭제/분류하기/등 ...
  • 있을 것
  • PHP 스크립트를 통해 제공해야하기 때문에 필요한 경우 보안이나 이미지 처리와 같은 추가 작업을 수행 할 수 있습니다 (물론 플랫 파일로도이 작업을 수행 할 수 있지만 보안을 유지할 수 있는지 확인해야합니다. 공용 디렉토리의 이미지).

단점 :

  • 그것의 PHP 스크립트를 검색해야하고, MySQL은 데이터를 반환 할 필요로 웹 서버에서 플랫 파일을 제공 한 후 느린.
  • 데이터베이스가 매우 빠르게 커지고 모든 웹 호스트가이 문제에 너무 친절하지는 않습니다.
  • 파일 시스템은 플랫 파일 저장 및 검색이 더 빠르며 파일 시스템이 설계된 그대로입니다.
2

나쁜. 웹 서버는 만료 헤더를 관리하고 파일 시스템에서 직접 파일을로드하는 작업을 훨씬 잘 처리합니다. 파일 시스템을 사용하면 처리량이 훨씬 높아집니다. 그것이 그것을 위해 설계된 것입니다.

SQL 데이터베이스는 이미지가 아닌 관계형 데이터 용으로 설계되었습니다. 불필요하게 데이터베이스를로드하는 것입니다. 대신 경로/이미지 이름을 저장하십시오.

+0

tyvm, 그리고 내가 할 :). – Zalaboza

+0

당신이 말하는 것은 내 친구 야.하지만 파일 시스템에 이미지 파일을 어떻게 보호 할 계획입니까? –

+0

안전하게 보관 하시겠습니까? 귀하의 서버가 손상되지 않았거나 귀하의 이미지보다 훨씬 어려운 문제가 있다고 가정합니다. 디렉토리 사용 권한은 응용 프로그램에 디렉토리에 대한 액세스 권한을 부여하지만 공유 호스트의 다른 사용자에는 제공하지 않습니다. – Xorlev

0

응용 프로그램이 큰 경우 즉, 많은 수의 이미지를 반복해서 표시해야하는 경우 첫 번째 방법 (데이터베이스에 이미지 경로 만 저장하고 파일 시스템에 실제 이미지 저장)을 수행해야합니다. 이렇게하면 이미지를 표시하는 데 필요한 처리 시간이 줄어들며 리소스를 덜 소모하게됩니다. 둘째, 응용 프로그램에 필요한 이미지 수가 적 으면 데이터베이스에 직접 저장할 수 있습니다. 이렇게하면 백업 및 포트 응용 프로그램을 다른 OS로 가져가는 것이 쉬워집니다.

관련 문제