MongoDB와 MySql
Mysql | MongoDB |
Database | Database |
Table | Collection |
Column | Field |
Row | Document |
질의
- 하나의 쿼리를 명시하는 키워드 mongoDb는 6개 정도의 질의를 구현한다.
- 키 - 값 질의 : 특정필드와 맵핑되는 값을 포함하는 문서를 말한다. 주 KEY에 대한 값을 리턴하는 경우를 말한다.
- 범위 : 특정범위에 포함되는 값을 말한다. (비교 연산자)
- 공간 질의 : 선, 원, 다각형 등에 대한 공간 근삿값
- 문자열 탐색 질의 : 논리 연산자를 통해서 특정 문자열에 결과값.
- 집합 질의 : 그룹함수를 지칭하며 count, min, max, average 등을 이용한 결과값
- mapreduce query : javascript로 표현되는 복잡한 데이터를 데이터베이스에 실행해 반환하는 질의를 말함.
- 파일db -> 데이터 -> 분철 -> 정렬 -> 집계
<MapReduce에 대한 개념은 추후 문서로 작성하겠디>
컬렉션의 키에 대한 필드 명 생성조건
- $로 시작할 수 없다.
- 255크기 내에 작성한다.
- 연산자를 포함할 수 없다.
- null(공백)이 중간에 들어갈 수 없다.
- 필드 이름은 하나의 컬렉션 내에서 유일한 값으로 존재한다.
- 전체 문서의 크기가 16M 제한적이다. (네트워크의 대역폭)
- 만일 문서가 대용량(16M 이상) GridFS api를 사용해서 구현한다.
문서에 대한 정보 (외부적인 상태)
- mongod.lock : 서버의 프로세스 ID를 저장한다.
- .0 파일 (.ns) : 메타데이터를 네임스페이스 단위로 저장한다.
- Metadata : 데이터를 위한 데이터, 예를 들어 HTML은 데이터이고 HTML의 <head>요소 안에는 이 문서를 설명하는 Metadata를 넣을 수 있다.
- 2번의 크기는 ns 16M를 넘을 수 없다.
- 28000개의 네임스페이스 하나의 데이터베이스는 컬렉션과 색인의 개수를 최대 28000개를 생성할 수 있다.
- --nssize arg ( = 16) 사이즈는 늘릴 수 있으나 16M 단위로 처리한다.
- test.0(64M), test.1(128M) 등의 파일은 순수 데이터 파일을 저장한다.
- 파일의 용량은 2GB까지가 최대이다.
- Mongo는 데이터저장소의 크기를 정적으로 관리한다.
내부적인 상태를 확인 --db.stats(1024);
- 자료를 입력했을 경우 몽고 드라이버의 동작
- MongoDB에 삽입되는 문서의 고유 번호인 ID인 _id로 필드와 값을 생성한다.
- 문서를 mongodb의 bson으로 변환한다 (storage.bson) --dbpath
- 네트워크 소켓을 통해서 데이터베이스로 데이터를 전달한다. (node.js)
'IT > MongoDB' 카테고리의 다른 글
MongoDB - Find(),Save() (0) | 2021.06.10 |
---|