2017-09-26 4 views
0

콜렉션의 레코드 집합을 지정된 시간 간격 후에 삭제해야하는 유스 케이스가 있습니다. 예 : 10 시간이 넘은 레코드는 매 10 시간마다 삭제됩니다.MongoDB의 콜렉션에 레코드 분할하기

우리는 id를 기반으로 삭제를 시도했지만 속도가 느린 것으로 나타났습니다.

모음의 레코드를 분할하고 몽고에 필요한 경우와

답변

0

MongoDB를 현재 파티션을 지원하지 않는 파티션을 삭제하는 방법이 있나요 (SERVER-2097) 기능으로이를 추가하는 JIRA 티켓이 .

하나의 솔루션은 여러 개의 시간 기반 컬렉션을 활용하여 파티션과 비슷한 방식으로 컬렉션을 순환시키는 것입니다. 일반적으로 이러한 시간 기반 컬렉션 중 하나 또는 몇 가지 만 쿼리 할 때이 작업을 수행합니다. 종종 여러 콜렉션에서 읽을 필요가있는 경우,이를 단순화하기 위해 래퍼 코드를 추가 할 수 있습니다.

또한 TTL Indexes이 있습니다. mongod 서버의 백그라운드 스레드를 활용하여 삭제를 처리합니다.

귀하의 _id에 의한 삭제는 여러 가지 이유로 천천히 진행되었을 수 있으며 원래의 질문을 초과하여 더 많은 조사가 필요할 수 있습니다.