2009-09-02 1 views
2

나는이 질문에 대해 여러 개의 복제본이 있다고 말할 것입니다. 나는 그들 대부분을 읽었습니다. 하지만 내가 제시 한 구체적인 사례에 대한 답변이 필요합니다.수백만 개의 작은 이미지를 Firebird blob 필드에 저장하십시오.

파이어 버드 데이터베이스에 수백만 개의 작은 jpg 이미지 (약 3kb)를 저장할 계획입니다.

가정 :
- 이러한 이미지를 포함 할 테이블에는 다른 정보가 있지만 키는 포함되지 않습니다.
- 웹 응용 프로그램이 아닙니다.
- 이미지가 업데이트되지 않습니다.
- 대부분의 경우 데이터베이스는 한 자리 이상의 GB가되지 않습니다.
- 서버는 관리 할 DBA가 없어 유지 관리가 쉬워야합니다.

좋은 접근 방법입니까? 또는 파일 시스템에 이미지 저장을 고려해야합니까?

필자는 웹 이외의 응용 프로그램과 Firebird 데이터베이스에 대한 답변이 필요합니다.

+0

특별한 이유는 무엇입니까? –

+0

데이터베이스에 바이너리 데이터를 저장하는 것은 의미가 없습니다. 이진 이미지 데이터로 결과를 필터링 할 수 없습니다. 당신은 그것을 조작 할 수 없습니다. 데이터베이스가 제공하는 모든 것을 활용하지 않습니다. –

+4

예, 데이터를 저장하는 기능을 이용합니다. 이미 데이터베이스를 사용하여 다른 것을 저장하는 경우 데이터를 두 개의 다른 위치에 저장하는 대신 이미지를 저장하는 데 계속 사용하는 것이 좋습니다. – skaffman

답변

1

나는 Firebird News

에서이 약 설명을 참조 질문은 : 블롭 BLOB 또는하지?

1

이전 회사의 경우 Oracle 8 (이후 9 개 이후 10 개) 데이터베이스에 각각 32kb의 이미지를 저장했습니다. 또한 각 이미지에 대해 더 많은 정보가있었습니다.

그래서 저는 Firebird가 너무 많은 땀을 흘리지 않고 백만 정도를 견딜 수 있어야한다고 생각합니다.

+0

바이너리 처리는 데이터베이스마다 크게 다릅니다.예를 들어, 오라클은 BLOB를 저장하는 데 매우 좋지 않습니다 (TX 로그를 망칠 수 있습니다).하지만 RAW에서는 문제가 없습니다. Firebird는 바이너리에서도 빨아 들일 수 있습니다. – skaffman

+0

그것은 우리를 위해 완벽하게 작동했습니다. –

0

내가 파일 시스템에 저장하는 것이 좋습니다 - 세 가지 중 하나 이상을 수행하지만 : 계층 적 디렉토리 구조

  • 스토어 그들 (컨텍스트를 모르고 세부 사항을 제안하지 수), 그래서 큰 디렉토리를 읽을 때 아무런 문제가 없습니다.
  • 압축 파일 (예 : tar) 안에 세트를 저장합니다. 압축하면 파일 시스템에 작은 파일을 저장하지 않아도됩니다.
  • 앱에 캐싱 메커니즘이 있습니다.
0

이미지를 dbase에 저장하는 대신 가장 좋은 방법은 파일 시스템에 저장하는 것입니다.

그런 다음 dbase에서 이미지 룩업 테이블을 사용할 수 있습니다.이 룩업 테이블에서는 각 레코드가 파일 시스템 내의 이미지 파일에 대한 상대 경로 또는 절대 경로를 포함합니다.

일반적으로 dbase 내에서 이미지를 얼룩으로 저장하는 것은 매우 바람직하지 않습니다.