2010-08-19 3 views
1

10 만 개의 쿼리가 있으며 Google과 같은 '제안'시스템을 만들어야합니다. 많은 확장 가능한 'Google 제안'과 같은 시스템

alt text

같이 나는 꽤 빨리해야하고, 가능하면 (정렬과 같은 등)을 좀 더 깊이있는 옵션을 할 수 있습니다.

누구나 내가 속도를 유지하면서 100k + 쿼리를 통해 검색을 처리 할 수있는 데이터베이스 시스템을 추천 할 수 있습니까? 아니면 내 필요에 맞게 사용할 것으로 생각되는 기존 프로젝트입니까?

나는 아마도 MongoDB를 사용하려고 노력해 왔지만 그것이 가장 좋은 경로인지 확실하지 않습니다.

도움을 주시면 감사하겠습니다.

+0

초당 100k + 쿼리, 시간당 분당? –

+0

나는 그가 100KB의 예제 쿼리 문자열이나 쿼리 결과를 가지고 있다는 것을 의미한다고 가정합니다. 어쨌든, 괜찮은 데이터베이스라면 100k 행 테이블을 매우 빨리 검색 할 것입니다. –

+0

@ 존 100k + 총 검색어는 데이터베이스에 저장됩니다. 1 초도 안되는 시간에 10-15 개의 최고 스트링 매치를 리턴 할 수 있다면, 그것은 야구장에있게 될 것입니다. – GuiPinto

답변

1

이 요구 사항을 쉽게 처리 할 수있는 많은 데이터베이스 솔루션이 있으며, 100K 행은 데이터베이스에 실제로 많이 필요하지 않습니다. 당신의 질문에 당신이 말한 것을 바탕으로 실제로 '최고의'해결책은 아닙니다.

액세스 권한과 응용 프로그램 성장 방식에 따라 다릅니다. 좀 더 복잡 해지면 MySQL이나 MSSQL과 같은 완전한 관계형 데이터베이스 솔루션을 사용하는 것이 더 나을 것입니다. 그렇지 않으면 MongoDB가 정상적으로 작동합니다.

1

정말로 100K 단어 인 경우 전체를 메모리에로드하려는 유혹을 느낄 수 있습니다 (prefix trie). 그것은 blazingly 빠른 될 것입니다.

물론, 업데이트하는 것이 약간 힘듭니다 ... 옵션 목록에 무엇이 추가됩니까? 즉시 사용할 수 있도록 하나의 컴퓨터를 통해 옵션을 추가해야합니까, 아니면 최종 일관성이 충분합니까?