Mongodb는 로그를 컬렉션에 저장했으며 이제 통계 분석을 수행해야 합니다.
로깅 중이라 정보가 자주 삽입되어 색인이 없습니다. 그런데 테이블을 분석하고 조회할 때 인덱스가 없고 속도가 매우 느립니다. 혹시 좋은 방법이 있는지 여쭤보고 싶습니다. 일시적으로 데이터 볼륨은 2000W입니다.
巴扎黑2017-05-02 09:22:46
일반적으로 인덱스는 쓰기 성능에 큰 영향을 미쳐서는 안 됩니다. 물론 인덱스를 많이 추가해야 한다면 이는 또 다른 문제입니다. 아직 시도해보지 않으셨다면, 필요한 지수가 어느 정도 부작용을 가져오는지, 허용 범위 내에 있는지 먼저 확인해 보시는 것을 추천드립니다. 그렇다면 문제가 해결되었습니다. 이것이 허용되지 않는 경우 다음 두 가지 옵션을 고려해 볼 수 있습니다.
변환을 위해 샤딩을 사용하세요.
샤딩이 무엇인지 이미 알고 계실 것이므로 더 설명할 필요가 없습니다. 이 솔루션이 가져오는 문제는 분명히 서버 수가 크게 증가할 것이라는 점이며, 이는 수평적 확장의 불가피한 결과이기도 합니다. 장기적으로 귀하의 비즈니스가 발전한다면 이것이 반드시 취해야 할 길이므로 미리 계획하십시오.
다른 복제 세트 포인트에 다른 인덱스를 생성
아직 단일 노드에서 실행 중인 경우 가능한 한 빨리 복제 세트로 업그레이드하는 것이 좋습니다. 단일 노드 하드웨어 장애로 인해 데이터가 손실되어 복구할 수 없는 경우가 많이 있습니다. 그런 일이 발생할 때까지 기다리지 말고 후회하세요. 복제본 세트를 전제로 각 결과는 독립적으로 색인화될 수 있습니다.
노드 중지
복제본 세트 구성을 제거하고 다른 포트로 시작
이 노드에 필요한 인덱스 구축
원래 구성으로 다시 시작
복제본 세트는 여전히 기본 노드에서 모든 쓰기 작업을 완료해야 하므로 인덱스가 너무 많으면 문제가 발생할 수 있습니다. 결론을 내리려면 모든 것을 직접 테스트해야 합니다.
phpcn_u15822017-05-02 09:22:46
인덱스를 추가하거나 elasticsearch 또는 hbase로 변경하세요. 하루빨리 엘라스틱서치로 변경하시는 걸 추천드려요