StoryCode

성능 최적화 전략

Database 관리/Mongo DB
반응형

- 데이터 모델링.References

db.member_tbl.find({memberid:'abc'});  와 같이 find 하면,
   { "_id" : ObjectId("5cb82543ffd1c1ef601f0350"), "memberid" : "abc" }

위와 같이 _id 의 ObjectId 가 있으며, _id 로 검색도 가능함. 즉 _id 를 다른 Collection 에넣고 참고 하는 방법이 가능.

   db.member_tbl.find({_id:ObjectId('5cb82543ffd1c1ef601f0350')}); 

 

- 데이터 모델링.BSON

  Binary 는 최대 16MB.

 

- Index

  * 각 Index 는 8KB 의 데이타 공간 필요.

  * Index 는 system.indexes Collection 에 저장됨 : db.system.indexes.find() 로 Index 확인 가능.

  * Index 생성 : db.member_tbl.ensureIndex({"username":1, "hpno":-1}, {"name":"idx_member_tbl"}, {"unique":true},}{"dropDups":true}, {"background":true}) # 1은 오름차순. -1 이면 내림차순. background 는 백그라운드로 생성.

                  ensureIndex = createIndex

  * Index 확인 : db.member_tbl.getIndexes()

  * Index 삭제 : db.member_tbl.dropIndex("name_1")

db.runCommand({"dropIndexes":"user", "index":"*"})

 

- Spatial Index

  * db.map_tbl.ensureIndex({"gps":"2d"})

  * Ex> {"gps":[0,100]}, {"gps":{"x":30,"y":30}}, {"gps":{"lat":30,"long":30}}

  * db.map_tbl.ensureIndex({"gps2":"2d"}, {"min":-1000, "max":1000})

    이 경우오류 발생함 : db.map_tbl.insert({"gps2":{-1001, 0}})

  * 참고 : https://docs.mongodb.com/manual/core/geospatial-indexes/

- Multikey Index

  Array Field Index

 

- Text Index

  * String 컨텐츠에 대한 Index

  * 참고 : https://docs.mongodb.com/manual/core/index-text/

 

- Hashed Index

  db.member_tbl.createIndex({"a":"hashed"})

 

- PLAN 확인.explain

  db.member_tbl.find().sort({"$natural":-1}).explain("executionStats")

 

- Capped Collection ( 제한 컬렉션 )

  * 고정사이즈. Insert, Retrive 시 high-throughput.

  * Insert 순서 보장.

  * 정렬을 위한 인덱스 불필요. 오버헤드 없이 higher insertion throughput.

  * db.createCollection("log", { capped:true, size:100000}}

  * Document 개수 제한 : db.createCollection("log", { capped:true, size:100000, max:5000}}

  * Document 는 항상 입력순서대로 원형큐에 저장

  * 큐가 다 찼을 경우, 오래된 문서부터 대치됨.

  * 역순서 정렬 : db.user.find().sort({"$natural",-1})

 

 

 

 

 

 

 

 

 

[ 참조 ] https://www.slideshare.net/mrg7211/mongo-db-52216593

반응형

'Database 관리 > Mongo DB' 카테고리의 다른 글

MongoDB vs MySQL CRUD 비교  (0) 2019.04.21
기초사용법  (0) 2019.04.18
설치 ( Windows )  (0) 2019.04.18
용어  (0) 2019.04.16