[MongoDB] repair Database & compact Command

최대 1 분 소요

MongoDB에서 데이터를 삭제하더라도 실제 사용 가능한 디스크 용량은 그대로인데,
그 이유는 MongoDB에서 디스크를 미리 할당해서 사용하는 방식 때문이다.(참고)

MongoDB에서 사용 가능한 디스크 용량을 확보하기 위한 두가지 방법

  1. 특정 DB에 대해 db.repairDatabase() 명령 실행 (참고)
    • 장점: 실제 물리적인 디스크 용량이 늘어남
    • 단점: 실행 시간이 길며 lock이 걸림, DB 크기만큼의 여유 디스크 용량을 필요로 함
    • 따라서 디스크 용량이 충분하지 않은 경우엔 실행할 수 없다

  2. 각 collection마다 compact 명령 실행 (참고)
    • 장점: collection 대상으로 실행하기 때문에 repairDatabase보다는 훨씬 적은 디스크 용량을 사용
    • 단점: 실행 후 실제 디스크 용량은 늘지 않고, 이미 할당된 공간의 파편화를 정리하여 사용 가능하게 만들어 줌
    • 따라서 디스크 용량이 충분하지 않은 경우엔 실행할 수 없다




데이터 증가를 효율적으로 관리하는 방법

  1. capped collection
    • collection 생성 시 최대 크기와 document 개수를 옵션으로 설정 가능 (참고)
    • 장점: collection 최대 크기까지 도달 시 자동으로 오래된 데이터를 삭제 후 신규 데이터를 삽입함
    • 단점: delete는 불가능, update는 이전 doc 크기와 동일한 경우만 가능

  2. mongod –smallfiles 옵션 사용
    • 파일 할당 크기를 기본 64MB~2GB에서 16MB~512MB로 설정(참고)
    • 장점: 들어오는 데이터 크기가 작을 경우 DB 크기 증가 속도 감소
    • 단점: 파일 할당이 빈번해져서 속도가 느려질 수 있음


serverside-JS

댓글남기기