최상의 성능으로 MySQL 데이터베이스에 이미지를 저장하는 가장 좋은 방법은 무엇입니까? 사용을 LONGBLOB
유형 및 바이너리 내용을데이터베이스에 그림 저장하기
솔루션 B를 넣어 :
솔루션 A를 (큰 데이터베이스를 가정) URL을 호스팅에 파일을 저장하고 저장하는 방법을 미리
에서VARCHAR
유형
감사합니다
최상의 성능으로 MySQL 데이터베이스에 이미지를 저장하는 가장 좋은 방법은 무엇입니까? 사용을 LONGBLOB
유형 및 바이너리 내용을데이터베이스에 그림 저장하기
솔루션 B를 넣어 :
솔루션 A를 (큰 데이터베이스를 가정) URL을 호스팅에 파일을 저장하고 저장하는 방법을 미리
에서VARCHAR
유형
감사합니다
당신이 많은 이미지를 제공하기 위해 확장 할 필요가있는 시스템을 구축하는 경우 : DBMS의 이미지 내용을 성공시키는 엄청난 단점이있다.
웹 서버는 대형 공통 파일 저장 시스템 주위에 클러스터 될 수 있으며 이미지를 매우 효율적으로 제공 할 수 있습니다. 이러한 종류의 파일 서비스 아키텍처는 Apache, nginx 및 IIS와 같은 다양한 웹 서버 제품에 의해 고도로 최적화되었습니다.
그러나 이미지를 데이터베이스 BLOB에 넣으면 데이터베이스에서 이미지를 가져 오는 것이 병목이됩니다. 또한 각 이미지를 제공하기 위해 실행할 스크립트 (PHP, .net 등)가 필요합니다.
거의 모든 제작 웹 사이트는 파일에서 직접 이미지를 제공합니다. DBMS에 파일 저장소의 위치를 저장 한 다음 보내는 HTML 페이지의 URL로 변환 할 수 있습니다. imgloc
열이 u/10234/abcde.img
를 포함하고 테이블도 폭과 높이가 열이있는 경우
예를 들어, 웹 응용 프로그램은 다음 클라이언트가 콘텐츠 저장소에서 이미지를 가져옵니다
<img src="/content/u/10234/abcde.img" width="300" height="200">
뭔가를 방출 할 수있다.
URL을 저장하는 대신 "image1.png"와 같은 이미지 이름을 저장하고 서버에 이미지를 호스팅하는 것이 좋습니다. DB 크기와 호출 시간을 줄이는 데 도움이됩니다. 그런 다음 프로그래밍 방식으로 url 경로 앞에 접두어를 붙입니다.
이미지 위치가 변경 될 경우를 대비하여 파일 이름을 저장하는 것이 좋습니다. 그런 식으로 전체 테이블을 업데이트하는 것에 대해 걱정할 필요가 없으며 URL 경로를 사용하여 한 줄의 코드 만 수정할 수 있습니다.
데이터베이스에 삽입하는 경향이 있습니다. 그렇게하면 DB의 백업을 할 때 모두 함께 패키지됩니다. 서버를 옮긴다면 파일 시스템에서 파일을 옮기는 것에 대해 걱정할 필요가 없습니다.
대용량 파일 (GB)에 대한 이야기가 아니라면 파일 시스템 대 db 성능과의 차이점을 많이 볼 수 있을지 의심 스럽습니다.
어느 쪽이든 당신을 위해 일하게 될 것입니다, 단지 취향의 문제와 귀하의 특정 상황에 가장 적합한 것은 무엇입니까.
SO 및 인터넷에 대한 많은 답변이 이미 있습니다.
Storing Images in DB - Yea or Nay?
고맙습니다. – oscarvady