문제

나는 시스템을 개발하는 데 필요한 저장 큰 숫자(10 의 100 의 수천)의 개체입니다.각 객체는 이메일과 같은 주요 본문 텍스트,그리고 여러 보조 텍스트 분야의 제한 크기입니다.몸이 될 것입니다에서 몇 바이트,여러 가지 KB 크기에 있습니다.

각 항목이 있을 것이 하나의 고유 ID(아마 GUID)을 식별합니다.

저장소에만 기록할 때는 객체 추가할 것입니다.그것을 읽을 수 있다.삭제 드문 것입니다.데이터 거의 모든 인간의 텍스트를 읽을 수 있는 것입니다 그래서 쉽게 압축성.

시스템 수 있는 나에게 문제 I/Os 및 옴 메모리 캐싱하는 것이 이상적입니다.

나 유지하는 인덱스에서 메모리를 사용하여 지도 인덱스를 단순하고(주)키에 대한 개체입니다.한번에,나는 그것을 로드하는 디스크에서,또는 삭제합니다.

데이터 관리 시스템의 일부가 될 필요가 내 응용 프로그램-하고 싶지 않에 따라 달라집 OS 서비스입니다.거나 별도로 설치된 패키지가 있습니다.Native(C++)가장 좋은 것이지만,manged(C#)일이 있는 것입니다.

내가 믿는 데이터베이스의 분명한 선택,그러나 이야 슈퍼 빠르게 찾고 선적으로 메모리의 개체입니다.나는이 경험하지 않은 데이터와 함께 기본 기술 및 내가 걱정하는 일반적인 관계형 시스템을 처리하지 않습니다 이 모든 변수 크기 데이터를 효율적으로 합니다.

(참고로,이는 아무 것도 나의 일을 해당 개인정 프로젝트가 있습니다.)

에서의 경험하이 무엇인지,실행 가능한 대안에 대하여 전통적인 관계형 DB?또는 DB 작업을 위해 잘 이?

도움이 되었습니까?

해결책

보다 sqlite, 그것은 이용 가능한 많은 프로그래밍 언어와 환경에 대한 바인딩을 가지고 있으며, 버클리 DB, 데이터베이스 엔진 설치가 필요없는 디스크의 데이터베이스.

올바른 인덱스를 추가하면 조회가 매우 빠르며 세트 기반 데이터베이스이므로 여전히 벌크 쿼리 및 이와 유사하게 수행 할 수 있습니다.

다른 팁

PFS를 시도해 볼 것입니다. http://blog.sensenet.hu/post/2008/05/portal-file-system-(pfs)-an-open-source-content-repository-for-net.aspx

Jackrabbit이 완벽한 선택 이었기 때문에 C/.NET에있는 것이 너무 나쁩니다.

당신이 정말 하지 않을 나타낼 수 있는 방법을 찾 이 데이터를 사용합니다.나는 어떤 비슷한 작업으로 어떤 텍스트 마이닝 응용 프로그램의 주요 데이터에 저장된 MySQL 그러나 나 유지하는 텍스트 검색 색인에 족제비(프로젝트에서는 루비)을 찾기 위해 적절한 행 메시지 테이블에 기초한 키워드 검색합니다.나는 생각이 하이브리드 방법 당신을 위해 일할 수 있습니다.SQLServer 고 Lucene.Net 작동할 수 있지만 당신을 위해서는 C#환경입니다.나는 확실히 보면 주위에 당신을 찾을 수 있습 유사한 솔루션에서는 C++공간입니다.

나는 사용하지 않는 것이 좋습 SQLServer 전체 텍스트 검색--루씬 및 그 파생을 것이 훨씬 더 나은 선택입니다.

내 생각에 있는 것이 훨씬 더 나은 운이 단지에 대한 모든 DB 솔루션을 통해 파일 기반 솔루션입니다.모든 현대적인 데이터베이스를 처리할 수 있어야 합 데이터 요구사항,적어도 공간이다.건물 인덱스에서 큰 분야는 다른 문제는 이유이 추천하고 싶은 텍스트 마이닝 접근 방식이 필요할 경우를 검색합니다.

버클리 DB가 설계된 것 같습니다. 그러나 나는 그것을 사용하지 않았습니다.

어쩌면 당신은 Apache+Mod-Dav와 같은 Webdav-Server에 대해 생각해야 할 것입니다. 이렇게하면 Conten 및 Metadata가 디스크에 저장됩니다. 검색을 위해서는 기존 검색 엔진을이 WebDAV 서버 위에 놓을 수 있습니다 (예 : Lucene).

이렇게하면 최소한의 개발을 최소한으로 유지하고 강력한 기능으로 시작합니다.

당신은 보셨습니까? DB4O 또는 카보나이트?

살펴보십시오 일견.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top