언급 한 숫자에 대해서는 모든 대안이 효과가 있다고 생각합니다 (읽기 : 합리적인 시간에 분석을 완료 할 수 있음). 결과가 훨씬 빨라질 수있는 디자인을 권장합니다.
이전에 대답했듯이 일반적으로 postgresql은 mongo보다 빠르며 몇 배는 4 배 이상 빠릅니다. 예를 들어보십시오 :
http://www.enterprisedb.com/postgres-plus-edb-blog/marc-linster/postgres-outperforms-mongodb-and-ushers-new-developer-reality
조인의 성능 향상에 관심이 있다고 말했습니다. 필자는 엔티티 (예 : 게시물, 저자) 간의 유사성을 계산하는 데 관심이 있다고 가정하므로 주로 테이블을 자체 (예 : 게시물 또는 저자)와 결합하고 집계합니다.
또한 초기로드 후 데이터베이스가 읽기 전용이므로 문제를 인덱스 사용에 매우 적합하게 만듭니다. 인덱스 업데이트가 없으므로 인덱스 업데이트 비용을 지불하지 않으며 인덱스를위한 추가 스토리지가 있다고 생각합니다.
postgres를 사용하고 두 테이블에 데이터를 저장했을 것입니다.
테이블 포스트 생성 (post_id integer, url varchar (255), author_id integer);
-데이터를로드 한 다음 인덱스를 만듭니다. -이는 더 빠른로드와 더 나은 인덱스로 이어질 것입니다 테이블 변경 포스트 추가 제약 조건 post_pk primary key (post_id); 게시물에 post_author 인덱스를 만듭니다 (author_id);
테이블 주석 작성 (comment_id 정수, post_id 정수, author_id 정수, 주석 varchar (255)); 테이블 주석 변경 제약 조건 comment_pk 기본 키 (comment_id); 주석에 index_author 색인을 작성하십시오 (author_id); 주석에 대한 comment_post 색인을 작성하십시오 (post_id);
그런 다음 select m과 같은 쿼리의 주석을 기반으로 저자 유사성을 계산할 수 있습니다. m_author_id와 같은 author_id, a. m_author_id로 author_id, m으로 주석의 게시물로 count (distinct m.post_id)를 m.author_id에 의해 (post_id) 그룹으로 사용하여 주석에 참여합니다. author_id
nlp에 대한 주석에서 단어를 토큰 화하는 데 관심이있는 경우 다른 테이블을 추가하지만 데이터의 양을 크게 늘리는 것을 기억하십시오. 일반적으로 데이터베이스의 전체 토큰 화를 나타내지 않는 것이 좋습니다.