- 전체
- Sample DB
- database modeling
- [표준 SQL] Standard SQL
- G-SQL
- 10-Min
- ORACLE
- MS SQLserver
- MySQL
- SQLite
- postgreSQL
- 데이터아키텍처전문가 - 국가공인자격
- 데이터 분석 전문가 [ADP]
- [국가공인] SQL 개발자/전문가
- NoSQL
- hadoop
- hadoop eco system
- big data (빅데이터)
- stat(통계) R 언어
- XML DB & XQuery
- spark
- DataBase Tool
- 데이터분석 & 데이터사이언스
- Engineer Quality Management
- [기계학습] machine learning
- 데이터 수집 및 전처리
- 국가기술자격 빅데이터분석기사
- 암호화폐 (비트코인, cryptocurrency, bitcoin)
NoSQL [MongoDB] MongoDB의 제약사항들. (MongoDB limits thresholds)
2018.12.30 14:59
[MongoDB] MongoDB의 제약사항들. (MongoDB limits thresholds)
MongoDB의 한계(?)
2.4.9버전 기준.
BSON documents
- 하나의 BSON document의 최대 사이즈는 16 MB
- 하나의 BSON object의 최대 depth는 100
namespaces
- db명.colleciton명으로 구성되는 namespace 하나의 길이는 123 bytes가 한계
- 전체 namespace 수는 기본설정인 nssize=16MB 기준으로 24,000개 정도.
- nssize 옵션은 설정을 통해 최대 2047MB까지 늘일 수 있음.
indexes
- indexing되는 값은 최대 1024 bytes. 1024 bytes가 넘는 값이 indexing요청이 들어오면 MongoDB는 쌩깐다.
- 하나의 collection에는 최대 64개까지 index를 만들 수 있음.
- index 명칭은 namespace를 포함하여 125 characters를 넘을 수 없음. 너무 길다 싶으면 ensureIndex()를 통해 짧게 지정 가능.
- 복합인덱스(CompoundIndex)로 구성할 수 있는 최대 field수는 31개.
- text index는 geospatial index와 섞어서 사용할 수 없음.
Data
- capped collection의 최대 document 수를 지정할 경우, 232 넘어설 수 없음. 최대 document수를 지정하지 않는다면 해당 capped collection은 document 수의 제한은 없음.
- 하나의 mongod 인스턴스는 해당 OS가 제공하는 최대 virtual memory 주소공간 이상의 데이터셋을 관리할 수 없음. (Linux의 경우 저널사용시 64테라, 저널미사용시 128테라이고 Windows는 저널사용시 4테라, 저널미사용시 8테라)
- 한 Database의 collection수는 namespace size 설정에 달려 있음. 상단의 name spaces 부분 참조.
Replica Sets
- 하나의 Replica Set을 구성하는 최대 member수는 12
- 투표권이 있는 Replica Set memeber의 최대수는 7
Sharding Operational Restrictions
(shard 환경에서 사용할 수 없는 명령들)
- group -> 대신 mapReduce나 aggregate를 이용.
- db.eval()도 못씀.
- $where, $isolated, $snapshot, geoSearch
- 이미 데이터가 들어있는 collection을 sharding 하려 할 경우 256GB 까지 가능. 400GB까지도 가능하지만 document size나 chunk size에 따라 안될 수도 있음.
- shard 환경에서 update/remove시 query에 반드시 shard key 또는 _id가 포함되어 있어야 함. 만약 없을 경우 error 리턴.
- sharding 환경에서 MongoDB는 전체 shards 기준 index의 unique를 보장하지 않음. 만약 해당 index가 prefix로 전체 shard key를 포함한다면 unique 보장. (물론 single field가 아닌 full key)
- shard key는 512 bytes 를 넘을 수 없음.
- sharding을 하고 나면 shard key는 변경불가.
- 만약 무슨일이 있어도 shard key를 변경해야겠다면 아래의 방법을 추천.
- 전체 데이터를 external dump -> 기존 collection drop -> 새 shard key 설정 -> pre-splitting -> dump 데이터 밀어넣기
- shard key field는 update 불가능.
- 정방향이든 역방향이든 단순증가 shard key는 heavy-insert시에 단일 shard의 단일 chunk에만 insert 되므로 병목이 될 수 있음. 이걸 해결할려면 shard key를 잘 조합하던가, 아니면 hashed shard key를 이용할 것.
- MongoDB는 index가 아닌 field 기준 sort()를 요청할 경우 32MB 이하의 메모리를 사용할 경우에만 정렬된 결과를 반환함.
- aggregation시 $sort가 RAM의 10% 이상을 점유할 경우 error 처리
- 2d geospatial query는 $or를 사용할 수 없음.
- geometric query의 공간은 반구형(hemisphere)안에 들어가야 함.
- 다중 $in을 사용하고 해당 field들이 복합인덱스를 구성하는 경우, $in의 조합이 4000000개를 넘으면 MongoDB는 예외를 던지고 관둔다.
- MongoDB의 Database 이름은 대소문자를 구분한다. 대소문자를 구분하지 않는 Windows에서도 마찬가지다.
- Windows에서는 Database 이름으로 다음 문자를 사용할 수 없다 ===> \/. "*<>:|?
- Unix, Linux에서는 Database 이름으로 다음 문자를 사용할 수 없다 ===> \/. "
- 모든 시스템에서 MongoDB의 Database 이름에 null character를 포함할 수 없다.
- MongoDB의 Database 이름의 최대길이는 64 characters
- collection 이름은 반드시 언더스코어(_)나 letter character(적절한 번역단어를 모르겠음)로 시작해야 하며 다음과 같은 형태를 사용할 수 없다.
- 달러기호($)는 포함할 수 없다.
- 빈 문자열 불가
- null character를 포함할 수 없다.
- system.이란 단어로 시작할 수 없다. (예약어)
- field 이름에는 점(.)이나 달러기호($) 또는 null character를 포함할 수 없다.
[참조]
http://docs.mongodb.org/manual/reference/limits/
출처: http://bloodguy.tistory.com/entry/MongoDB-MongoDB의-제약사항들-MongoDB-limits-thresholds [Bloodguy]
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
댓글 0
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
|---|---|---|---|---|
| 공지 | 오라클 기본 샘플 데이터베이스 | 졸리운_곰 | 2014.01.02 | 86130 |
| 공지 | [SQL컨셉] 서적 "SQL컨셉"의 샘플 데이타 베이스 SAMPLE DATABASE of ORACLE | 가을의 곰을... | 2013.02.10 | 78632 |
| 공지 | [G_SQL] Sample Database | 가을의 곰을... | 2012.05.20 | 95353 |
| 9 |
[Sample DB] DBeaver 데이터 dump(export)/restore(import) 방법
| 졸리운_곰 | 2024.07.08 | 2419 |
| 8 |
W3Schools sample Database sql dump
| 졸리운_곰 | 2020.05.16 | 1917 |
| 7 |
다운타임 없는 서비스 구현 패턴
| 졸리운_곰 | 2017.07.15 | 2031 |
| 6 |
[칼퇴족 김대리는 알고 나만 모르는 SQL 예제, mysql 변경 Sample DB SQL 책밥 출판
| 졸리운_곰 | 2017.04.04 | 2030 |
| 5 | [칼퇴족 김대리는 알고 나만 모르는 SQL 예제, Oracle Sample DB SQL 책밥 출판 | 졸리운_곰 | 2017.04.04 | 1841 |
| 4 | SQL Style Guide ; SQL 코딩 표준 | 졸리운_곰 | 2017.01.14 | 30788 |
| 3 |
SQL 기초 sample.pdf
| 졸리운_곰 | 2016.03.16 | 2059 |
| 2 | Select와 동시에 Delete 하기. | 졸리운_곰 | 2016.03.16 | 3106 |
| 1 |
SQL Explorer : Eclipse를 위한 RDMS 쿼리 도구
| 가을의 곰을... | 2013.11.27 | 2383 |

