MongoDB 데이터 크기 구하기

NoSQL/MongoDB|2016. 2. 27. 16:18

MongoDB  데이터  크기 구하기



MongoDB는 데이터를 기본적으로 BSON으로 저장합니다.
사실 DB를 관리할 때 보면 용량을 무시할 수 없잖아요? 얼마나 사용하고 있는지, 데이터의 실제 크기는 얼마인지 말이죠.
MongoDB는 이러한 현재 collection(컬렉션)에서 사용중인 크기를 알려주는 명령어가 있습니다.

우선 MongoDB에 접속합니다.
>db.collections.stats()
위 명령을 수행하면 데이터 크기 뿐만아니라 전체적인 컬렉션 정보가 출력됩니다.
인덱스 사용량 컬렉션이 확보한 공간 정보 등등 매우 많은 정보가 나오죠.
그 중에서 storage부분과 average부분이 데이터와 관련된 부분중에 있죠. 아마 데이터 개수도 나올 겁니다.
storage는 컬렉션의 크기입니다. 저장공간의 크기인거죠. 

이 저장공간을 데이터 개수로 나눈 수치가 average인거죠(평균)
이는 실제 하나의 데이터와는 다를 수 있습니다.

그래서 다른 방법을 사용해보겠습니다.

만약 하나의 데이터의 실제 크기(평균치가 아닌)를 구하고자 한다면

Object.bsonsize()함수를 활용한

>Object.bsonsize(db.collections.findOne())

위 명령어를 수행하면 됩니다.

물론  findOne()안에 조건으로 확인할 데이터를 선택하면 되죠.

여기서 보시면 알겠지만.

jsavscript를 이용한 방식인거 같습니다.

그런데, 데이터는 한번에 하니씩만 가능합니다. 여러개의 데이터 즉 find()를 이용한 데이터 크기는 구하지 못합니다.

그럴려면 javascript를 활용하여 find()함수와  for문으로 하나씩 데이터의 크기를 구하는 스크립트를 만들어야 하는 거죠.

이떄 데이터 오차가 발생 될 수도 있습니다.

find의 데이터 호출은 실제 반환할떄 필요한 부분을 제거하고 보여줄 수도 있기 때문입니다.

그래서 데이터 하나당 5바이트의 차이가 발생할 수도 있습니다.


댓글()