2010-08-19 4 views
1

비디오 파일을 BLOB 개체로 데이터베이스에 저장하거나 실제 디스크에 저장하는 것이 좋습니다. 비디오 파일을 저장할 위치 - 데이터베이스 또는 디스크

는 사용자가 동영상을 업로드 및 옵션이 더있다

MySQL의

것이 그들에게

데이터베이스를 볼 수 있습니다 유튜브와 유사한 사이트에 대한 이유

감사

+0

어느 RDBMS? ... –

+0

데이터베이스가 MySQL 것입니다 – Gublooo

답변

2

프로 MySQL을 : - BLOB는 외래 키의 대상이 될 수 있으므로 파일 시스템에 저장하는 것과 달리 데이터베이스를 중복으로 유지할 수 있습니다. 이 경우 파일 삭제를 프로그램해야합니다. - 사용자 권한을 세분화했습니다.

단점 : - MySQL은 무료로 실행되지 않으며, 파일 시스템에서 제공하는 것과는 달리 오버 헤드가 있습니다. - 웹 서버는 데이터베이스에서 직접 BLOB를 제공 할 수 없습니다. 이것은 PHP가 프로세스를 중재해야 함을 의미합니다. BLOB가 MySQL에서 PHP로로드되면 메모리 사용은 BLOB만큼 atleast가됩니다. 따라서 파일이 수백 MB로 실행될 수있는 경우에는 웹 서버에 막대한 부담을 안겨줍니다.

모든 현실에서 MySQL은 파일을 저장하는 데 사용되지 않습니다. BLOB는 주로 캐시와 같은 직렬화 된 데이터의 저장량을 저장하는 데 사용됩니다.

0

저는 스토리지 관점에서 약 5 년 동안의 미디어 컨텐츠를 저장하기 위해 NFS를 사용하고 있습니다. 조작, 인코딩 및 저장은 ffmpeg, PHP 스크립트 및 cron 작업을 통해 관리됩니다. 비디오 메타 데이터는 MySql 데이터베이스에 저장되고 웹 전달은 Nginx를 통해 제공됩니다 (읽기 전용 NFS 마운트를 통해). 이 환경에서는 비디오 파일의 크기가 최대 2GB입니다. 아마 다른 db 엔진에서 더 빨리 갈 수 있지만 실시간 낭비는 인코딩 프로세스 때문이며 파일을 저장하지 않기 때문입니다.

수천 개의 작은 이미지 (예 : 아바타)를 저장할 때 파일 메타 데이터 (이미지 경로 및 기타 속성)를 저장하고 DB를 너무 느리게 할 수있는 BLOB 필드에 파일을 저장하지 않기 위해 MySql을 사용합니다 무거운 쿼리에.

관련 문제