나는 mongodb를 사용하여 스트림으로 나와있는 30 일 데이터를 저장합니다. 나는 새 데이터를위한 공간을 만들기 위해 가장 오래된 데이터를 버릴 수있는 제거 메커니즘을 찾고있다. 나는이 상황을 파티션을 사용하여 처리했던 mysql을 사용했다. 나는 날짜 기반 인 30 개의 파티션을 유지했다. 가장 오래된 날짜가 지정된 파티션을 삭제하고 새 데이터를 저장할 새 파티션을 만들었습니다. Mongodb에서 데이터베이스 제거를 처리하는 방법
내가 MongoDB의에서 같은 일을지도
, 나는 '파편'을 기반으로 날짜를 사용하여 같은 느낌. 그러나 문제는 그것이 나의 데이터 분배를 나쁘게 만든다는 것이다. 새로운 데이터가 모두 같은 샤드에 있다면, 그 샤드는 너무나 뜨거워서 많은 사람들이 액세스하고 오래된 데이터를 포함하는 샤드는 사용자가 덜로드하게됩니다.컬렉션을 기반으로 제거를 수행 할 수 있습니다. 30 개의 콜렉션을 가질 수 있으며 새로운 데이터를 수용하기 위해 가장 오래된 콜렉션을 버릴 수 있습니다. 하지만 몇 가지 문제가 있습니다. 1) 컬렉션을 작게 만들면 컬렉션별로 수행되는 것처럼 샤딩으로 많은 이점을 얻을 수 없습니다. 2) 내 쿼리는 30 개 컬렉션 모두에서 쿼리로 변경하고 유니온을 가져와야합니다.
이 상황을 처리하기위한 좋은 제거 메커니즘 (있는 경우)을 제안하십시오.