오래된 데이터를 제거하고 고통없이 OS로 다시 디스크 공간을 회수하는 매우 깔끔하고 저렴한 방법을 찾고 있습니다.MongoDB : 큰 데이터 세트를 직접 파티션 하시겠습니까?
샘플링 데이터 (타임 스탬프 + 속성 모음)를 저장합니다. 그것의 제비. 각 샘플은 단일 문서이며 컬렉션이 커집니다.
캡핑 된 컬렉션은 시간 범위를 기반으로 데이터를 저장해야하기 때문에 문제가되지 않습니다. TTL 인덱스가 필요로하는 공간 때문에 TTL 컬렉션이 좋지 않을 수 있습니다. 엄청나게 커질 수 있습니다. 다른 이유로 샤딩이 해제되었습니다.
그래서 내가 생각한 것은 모든 것을 나 자신으로 분할하는 것입니다. 데이터 파티션 (예 : 주 단위)을 별도로 저장할 것입니다. 매주 새로운 '파티션'을 시작할 것입니다. 또한 매주 일부 오래된 '파티션'을 삭제합니다. 잔인하고 단순합니다. 많은 양의 색인 된 데이터를 제거하므로 문서를 삭제하는 대신 삭제됩니다.
여기서 '파티션'에 사용해야하는 질문은 무엇입니까? 컬렉션 또는 데이터베이스? 기술적으로 어느 쪽이든 갈 수있는 앱은 Java 기반이므로 컬렉션 또는 데이터베이스를 쉽게 관리 할 수 있습니다.
컬렉션을 삭제하는 것에 대한 우려는 mongodb에서 사용되어 디스크 공간을 다시 OS로 회수하는 데 문제가 있다는 것입니다. 그런 다음 재사용을 시도합니다. 단편화 문제가있을 수 있으며 복구() 할 필요가 있습니다.
더 효율적인 방법으로 데이터베이스를 삭제 하시겠습니까?
다시 말해서 새로운 데이터를 펌프하면서 이전 데이터의 테라 바이트를 없애는 데 가장 방해가되지 않는 방법이 필요합니다. 두 가지 방법 모두 사용 경험이 있다면 공유하십시오.
감사합니다. 이것은 데이터베이스 삭제 중 디스크 공간을 회수하지 못하는 콜렉션 삭제에 대해 듣고 싶었습니다. – Dima