2014-09-08 3 views
0

그래서 나는 문서 형식의 데이터 (즉, 전사 된 문서)를 저장할 시스템을 설계하고 있습니다. 바로 이것이 MongoDB와 같은 NOSQL 구현을 활용할 수있는 좋은 기회라고 생각했습니다. 그러나 Mongo에 대한 경험이 없다는 것을 감안할 때, 나는이 문서들 각각에 날짜, 저자, 키워드 등과 같은 것들을 검색 할 수있는 메타 데이터 태그를 많이 가지고 있습니다. MySql과 같은 RDBMS를 사용하는 것이 었습니다. 아마도이 항목들을 외래 키에 의해 선호되는 별개의 테이블에 저장하고, 인덱스는 검색 될 가능성이 가장 높은 항목들을 저장합니다. 그런 다음 해당 테이블에 대해 쿼리를 실행하고 일치하는 항목에 대한 전체 텍스트 결과 만 가져 오거나 (많은 텍스트 또는 BLOB 정보를 포함하는 행을 통해 도달 할 필요가없는 디스크 읽기를 저장합니다).Mongo 대 MySql 검색 최적화

Mongo와 비슷한 것이 있습니까? 나는 Mongo에서 모든 메타 데이터와 실제 필사본을 갖는 하나의 문서를 간단하게 만들 수 있지만 문서가 그렇게 저장된 경우 메타 데이터의 다양한 필드를 검색하는 것이 쉽고 탁월한가? Mongo 문서의 여러 항목을 검색해야 할 때 가장 좋은 방법이 있습니까? 아니면 이런 유형의 시나리오가 NOSQL 구현보다는 RDBMS에 더 적합한가?

+0

또한 더 명확히하기 위해, 읽기에만 관심이 있습니다. 초기 데이터로드가 완료되면 쓰기 (삽입 또는 업데이트)가 거의 필요하지 않습니다. –

+1

단락 분리가 손상 되었습니까? – Sammaye

답변

0

mongodb 문서의 개별 필드에 대한 색인을 추가 할 수 있습니다. 인덱스가 메모리보다 커질 때만 인덱스 기반 검색 성능이 문제가 될 수 있습니다.

mongodb와 함께 할 것인지 결정할 때 조인 작업이 없다는 것을 기억하십시오. 이 작업은 db 계층 이상에서 수행해야합니다.

주요 관심사를 검색하는 경우 mongodb 용 ElasticSearch 강이 있으므로 데이터 집합에서 ElasticSearch를 활용할 수 있습니다.

0

NoSQL 모델은 장거리 데이터 저장 장치 (OLTP 모델)를 대상으로합니다. 예를 들어 인덱스를 생성하고 원하는 쿼리를 수행 할 수 있습니다. 테이블 전체에 관련된 엔티티가없는 대신 모든 엔티티 자기 자신 안에서 그것에 의존하는 엔티티.

수백만 개의 데이터와 관련된 관계형 데이터베이스에서 많은 조인을 사용하여 복잡한 보고서를 추출해야하는 경우 다른 응용 프로그램을 손상시킬 수 있기 때문에 그러한 행위는 비실용적입니다.

예 :

방과 학생 단체가 있습니다.

각 객실

많은 학생들이, 관계형 모델 우리는 다음과 같은 것이다 :

SELECT * FROM ROOM R 
INNER JOIN 
S STUDENT 
ON = S.ID R.STUDENTID 

일을 상상해 약 20 테이블의 데이터를 수천? 그의 공연은 끔찍할 것이다.

db.sala.find (null) 

을 그리고 자신의 학생들과 함께 모든 객실이있을 것이다 :

MongoDB를 사용하면 그렇게 할 것입니다.

MongoDB는 가로로 검사를 수행하는 데이터베이스입니다.

당신은 읽을 수

http://openmymind.net/mongodb.pdf

이 사이트는 또한 책의 예제를 사용하는 대화 형 자습서를 가지고있다. 아주 좋아.

그리고 여기에서 mongodb 온라인을 경험하고 명령을 테스트 할 수 있습니다.

try mongo db를 검색하십시오.

복제본이있는 조각에 대해서도 읽습니다. 나는 그것이 당신의 마음을 크게 열 것이라고 믿습니다.

당신은 mongodb로 팅커칠 수있는 그래픽 인터페이스 인 Robomongo를 설치할 수 있습니다.

http://robomongo.org/