- 방법#1 : mongosh에서는 SQL 스타일의 명령어를 사용하여 데이터베이스 내의 컬렉션 목록을 쉽게 확인할 수 있습니다.
- 이 명령어는 현재 선택된 데이터베이스의 컬렉션 목록을 출력합니다.
> use myDatabase
> show collections
users
products
orders
- 방법#2 : mongosh에서 JavaScript 메서드를 사용하여 컬렉션 목록을 조회할 수도 있습니다.
- 이 명령어는 현재 선택된 데이터베이스의 컬렉션 이름을 배열로 반환합니다.
> use myDatabase
> db.getCollectionNames()
[
"users",
"products",
"orders"
]
- mongosh에서 db.collection.stats() 메서드를 사용하여 컬렉션의 통계 정보를 확인할 수 있습니다.
- 주요 필드 설명
- size: 컬렉션의 전체 크기(바이트 단위).
- count: 컬렉션 내 문서 수.
- avgObjSize: 평균 문서 크기(바이트 단위).
- storageSize: 컬렉션이 실제로 차지하는 스토리지 크기(바이트 단위).
- nindexes: 컬렉션에 존재하는 인덱스 수.
- totalIndexSize: 인덱스가 차지하는 전체 크기(바이트 단위).
- indexSizes: 각 인덱스별 크기(바이트 단위).
- 주요 필드 설명
> use myDatabase
> db.myCollection.stats()
{
"ns" : "myDatabase.myCollection",
"size" : 1024,
"count" : 100,
"avgObjSize" : 10.24,
"storageSize" : 2048,
"capped" : false,
"wiredTiger" : {
...
},
"nindexes" : 1,
"totalIndexSize" : 4096,
"indexSizes" : {
"_id_" : 4096
},
"ok" : 1
}
- 인덱스 크기 확인
- 인덱스 크기를 별도로 확인하려면 totalIndexSize와 indexSizes 필드를 확인할 수 있습니다.
> var stats = db.myCollection.stats();
print("Total Index Size: " + stats.totalIndexSize + " bytes");
print("Index Sizes: ", stats.indexSizes);
- 모든 컬렉션의 용량 확인
- 데이터베이스 내 모든 컬렉션의 용량을 확인하려면, db.getCollectionNames()와 db.collection.stats()를 조합하여 사용할 수 있습니다.
> db.getCollectionNames().forEach(function(collectionName) {
var stats = db.getCollection(collectionName).stats();
print("Collection: " + collectionName);
print("Size: " + stats.size + " bytes");
print("Storage Size: " + stats.storageSize + " bytes");
print("Total Index Size: " + stats.totalIndexSize + " bytes");
print("\n");
});
- 모든 컬렉션의 용량 확인 (GB)
- db.collection.stats() 명령을 사용하여 얻은 컬렉션 용량 정보를 바이트 단위가 아닌 기가바이트 단위로 표시하려면, 바이트를 기가바이트로 변환하는 계산을 추가하면 됩니다. 바이트를 기가바이트로 변환하려면 바이트 값을 1024 * 1024 * 1024 로 나누면 됩니다.
- 스크립트 설명
- db.getCollectionNames().forEach(function(collectionName) {...}): 데이터베이스의 모든 컬렉션에 대해 반복합니다.
- db.getCollection(collectionName).stats(): 각 컬렉션의 통계 정보를 가져옵니다.
- (stats.size / (1024 * 1024 * 1024)).toFixed(2): 바이트를 기가바이트로 변환하고 소수점 두 자리까지 반올림합니다.
- print("Collection: " + collectionName): 컬렉션 이름을 출력합니다.
- print("Size: " + sizeGB + " GB"): 컬렉션의 크기를 기가바이트 단위로 출력합니다.
- print("Storage Size: " + storageSizeGB + " GB"): 컬렉션이 실제로 차지하는 스토리지 크기를 기가바이트 단위로 출력합니다.
- print("Total Index Size: " + totalIndexSizeGB + " GB"): 인덱스가 차지하는 전체 크기를 기가바이트 단위로 출력합니다.
- 스크립트 설명
- db.collection.stats() 명령을 사용하여 얻은 컬렉션 용량 정보를 바이트 단위가 아닌 기가바이트 단위로 표시하려면, 바이트를 기가바이트로 변환하는 계산을 추가하면 됩니다. 바이트를 기가바이트로 변환하려면 바이트 값을 1024 * 1024 * 1024 로 나누면 됩니다.
// 모든 컬렉션의 용량을 GB 단위로 출력하는 스크립트
> db.getCollectionNames().forEach(function(collectionName) {
var stats = db.getCollection(collectionName).stats();
var sizeGB = (stats.size / (1024 * 1024 * 1024)).toFixed(2);
var storageSizeGB = (stats.storageSize / (1024 * 1024 * 1024)).toFixed(2);
var totalIndexSizeGB = (stats.totalIndexSize / (1024 * 1024 * 1024)).toFixed(2);
print("Collection: " + collectionName);
print("Size: " + sizeGB + " GB");
print("Storage Size: " + storageSizeGB + " GB");
print("Total Index Size: " + totalIndexSizeGB + " GB");
print("\n");
});
'mongoDB' 카테고리의 다른 글
mongodb 에서 인덱스 용량 확인 (0) | 2024.09.21 |
---|---|
mongoDB 데이터 압축 (0) | 2024.06.27 |
documentDB 를 접속을 위한 port forwarding 셋팅 (1) | 2020.05.25 |
mongod log file 관리 (0) | 2019.07.19 |