HOWTO · MongoDB

MongoDB에서 데이터베이스 크기 가져오기

이 튜토리얼은 MongoDB에서 데이터베이스의 크기를 얻는 방법을 보여줍니다.

이 페이지의 내용

MongoDB에서 작업하는 동안 데이터베이스의 크기를 알고 있습니까? 오늘은 show dbs 명령과 db.stats() 메소드를 사용하여 MongoDB에서 데이터베이스 크기를 가져오는 방법을 이해합니다.

MongoDB에서 데이터베이스 크기 가져오기

show dbs;를 사용할 수 있습니다. mongo 셸에서 명령을 실행하여 다음과 같이 MongoDB에 있는 모든 데이터베이스의 저장소 크기를 가져옵니다.

예제 코드:

> show dbs;

출력:

admin   0.000GB
config  0.000GB
local   0.000GB
test    0.001GB

위의 출력은 크기가 GB 단위인 데이터베이스 이름을 보여줍니다. 데이터베이스에 대한 자세한 통계를 얻기 위해 db.stats() 메소드를 사용합니다.

먼저 이해해야 할 다양한 분야가 있습니다. 다음은 각각에 대한 간략한 설명이지만 모든 필드에 대한 자세한 내용은 여기에서 찾을 수 있습니다.

  1. db - 현재 데이터베이스의 이름
  2. collections - 현재 데이터베이스의 테이블/컬렉션 수
  3. views - 현재 데이터베이스의 조회수
  4. objects - 모든 테이블(컬렉션)에서 현재 데이터베이스의 객체 수
  5. avgObjSize - 모든 문서(레코드)의 평균 크기(바이트)
  6. dataSize - 데이터베이스에 포함된 압축되지 않은 데이터의 총 크기. 문서를 제거하면 dataSize가 감소합니다.
  7. storageSize - filesystem에 저장된 데이터의 크기입니다. 압축을 사용하는 경우 dataSize는 storageSize보다 클 수 있습니다.
  8. indexes - 모든 컬렉션에 대한 데이터베이스의 인덱스 수
  9. indexSize - 사용 가능한 인덱스 공간과 데이터베이스의 모든 인덱스에 할당된 공간의 합계
  10. totalSize - 데이터베이스의 모든 컬렉션에 대한 인덱스 및 문서에 할당된 공간의 합계입니다. 무료 및 사용된 저장 공간이 포함됩니다.
  11. scaleFactor - 명령에서 사용하는 값
  12. fsUsedSize 및 fsTotalSize - 이들은 모두 데이터베이스가 저장된 파일 시스템에 관한 것입니다. 이것들은 데이터베이스가 얼마나 성장할 수 있는지에 대한 아이디어를 얻는 데 사용됩니다.
  13. ok - 값 1은 쿼리가 성공적으로 실행되었음을 의미합니다.

db.stats() 함수를 사용하기 전에 데이터베이스를 선택해야 한다는 것을 기억하십시오.

예제 코드:

> use test
> db.stats()

출력:

{
        "db" : "test",
        "collections" : 5,
        "views" : 0,
        "objects" : 15,
        "avgObjSize" : 99,
        "dataSize" : 1485,
        "storageSize" : 135168,
        "indexes" : 5,
        "indexSize" : 102400,
        "totalSize" : 237568,
        "scaleFactor" : 1,
        "fsUsedSize" : 176960913408,
        "fsTotalSize" : 208499617792,
        "ok" : 1
}

프로젝트 요구 사항에 따라 스케일링 팩터를 전달할 수도 있습니다.

  1. 통계를 바이트 단위로 원하면 배율 인수가 전달되지 않습니다.
  2. stats() 메소드에 1024를 전달하여 킬로바이트(KB) 단위의 통계를 가져옵니다.
  3. 1024 * 1024를 stats() 함수에 전달하여 메가바이트(MB) 단위로 통계를 검색합니다.
  4. 1024 * 1024 * 1024를 stats() 메서드에 전달하여 기가바이트(GB) 단위로 통계를 봅니다.

데모로 다음 예를 참조하십시오.

바이트 단위로 통계 가져오기:

>db.stats()

출력:

{
        "db" : "test",
        "collections" : 5,
        "views" : 0,
        "objects" : 15,
        "avgObjSize" : 99,
        "dataSize" : 1485,
        "storageSize" : 135168,
        "indexes" : 5,
        "indexSize" : 102400,
        "totalSize" : 237568,
        "scaleFactor" : 1,
        "fsUsedSize" : 176986320896,
        "fsTotalSize" : 208499617792,
        "ok" : 1
}

데이터베이스는 위에 주어진 storageSize를 고려하여 filesystem에서 0.1352 MB를 차지합니다. 마찬가지로 다음 예에서 데이터베이스의 크기를 얻을 수 있습니다.

KB 단위로 통계 가져오기:

> db.stats(1024)

출력:

{
        "db" : "test",
        "collections" : 5,
        "views" : 0,
        "objects" : 15,
        "avgObjSize" : 99,
        "dataSize" : 1.4501953125,
        "storageSize" : 132,
        "indexes" : 5,
        "indexSize" : 100,
        "totalSize" : 232,
        "scaleFactor" : 1024,
        "fsUsedSize" : 172839080,
        "fsTotalSize" : 203612908,
        "ok" : 1
}

MB 단위로 통계 가져오기:

> db.stats(1024*1024)

출력:

{
        "db" : "test",
        "collections" : 5,
        "views" : 0,
        "objects" : 15,
        "avgObjSize" : 99,
        "dataSize" : 0.0014162063598632812,
        "storageSize" : 0.12890625,
        "indexes" : 5,
        "indexSize" : 0.09765625,
        "totalSize" : 0.2265625,
        "scaleFactor" : 1048576,
        "fsUsedSize" : 168788.66796875,
        "fsTotalSize" : 198840.73046875,
        "ok" : 1
}

GB 단위로 통계 가져오기:

> db.stats(1024*1024*1024)

출력:

{
        "db" : "test",
        "collections" : 5,
        "views" : 0,
        "objects" : 15,
        "avgObjSize" : 99,
        "dataSize" : 0.0000013830140233039856,
        "storageSize" : 0.000125885009765625,
        "indexes" : 5,
        "indexSize" : 0.000095367431640625,
        "totalSize" : 0.00022125244140625,
        "scaleFactor" : 1073741824,
        "fsUsedSize" : 164.83288955688477,
        "fsTotalSize" : 194.18040084838867,
        "ok" : 1
}