mongoDB란?


  • NoSQL DBMS의 한 종류로서 테이블과 같은 schema가 없으며, JSON 형태의 문서 지향적 NoSQL 데이터베이스입니다.

  • mongoDB는 C++로 작성된 오픈소스 문서지향적 Cross-platform 데이터베이스이며, 뛰어난 확장성과 성능을 자랑합니다.




mongoDB 개념


  • mongoDB는 입.출력에서는 JSON 그리고 저장에는 BSON 타입으로 데이터를 저장합니다.




mongoDB의 용어 설명


  • mongoDB에서 사용하는 용어는 RDBMS와 조금 다릅니다. 아래 표와 같이 mongoDB에서는 table를 collection이라 하고, row를 document, db server를 mongod, db client를 mongo라고 부릅니다.

RDBMS mongoDB
database database
table collection
row document
column field
index index
DB Server Mongod
DB Client mongo




스키마 리스의 장점


  • mongoDB는 document 기반 데이터베이스이기 때문에 RDBMS와 다르게 자유로이 데이터 구조를 잡을 수 있습니다.




index


  • query를 더욱 효율적으로 할 수 있도록 document에 기준(key)을 정해 정렬된 목록을 생성합니다. 인덱스가 없다면 MongoDB는 full collection scan 방식으로 데이터를 찾습니다.

  • mongoDB index는 B-Tree 구조로 되어있습니다.




ObjectId


  • 모든 Mongo DB의 document는 기본적으로 12byte 크기의 _id 필드 인덱스가 존재합니다. 컬렉션 생성 시 _id 필드를 따로 지정하지 않으면 mongod 드라이버가 자동으로 _id 필드 값을 ObjectId로 설정합니다. _id 인덱스는 unique하고 이는 MongoDB client가 같은 _id를 가진 문서를 중복적으로 추가하는 것을 방지합니다.

  • ObjectId는 세 가지 영역으로 나뉘어져 있습니다. 첫 4Byte는 UNIX Timestamp 정보를 담고있고, 다음 5byte는 랜덤한 값으로 이루어져 있는데 3byte와 2byte로 나뉩니다. 그리고 마지막 3byte는 클라이언트 머신별로 고유한 키를 이용하여 랜덤한 값을 만들어 사용합니다.




'데이터 베이스 > NoSQL' 카테고리의 다른 글

MongoDB의 특징  (0) 2023.03.29
MongoDB index 종류  (0) 2023.03.22
NoSQL이란?  (0) 2023.01.14
MongoDB transaction 사용법  (0) 2023.01.08

+ Recent posts