14
50 Tips & Tricks for MongoDB Developers TIPS: 7~13 [email protected]

50 tips & tricks for mongo db developers

Embed Size (px)

DESCRIPTION

 

Citation preview

50 Tips & Tricks for MongoDB Developers

TIPS: 7~13

[email protected]

TIP 7: 미리 만들 수 있는 것은 만들어 놓자.

• Insert 비용 보다 Update 비용이 싸다.

– 공간 할당이 필요가 없으므로

• 어디에 쓸 것이냐?

– 통계 페이지 처럼 시간마다 같은 크기에 값만 바뀌는 경우

• 그런데 적은 용량이면 insert나 update가 큰 차이가 없을듯…

TIP 7: 미리 만들 수 있는 것은 만들어 놓자.

TIP 8: 가능하면 공간을 미리 할당하라.

• Tip 7과 같은 내용

• 미리 만들어두고 당장 안쓰는 정보는 $unset 해 두자.

TIP 9: 데이터를 내장할 때 식별자 없이 검색하려면 배열에 저장하라.

• 식별자

abilities.str Abilities.con 식별자를 쓴다는 것은 이름을 안다는 것!

TIP 9: 데이터를 내장할 때 식별자 없이 검색하려면 배열에 저장하라.

MongoDB 의 특징이 Schemaless 하므로 다양한 아이템을 넣을 수 있다. 하지만 damage가 20이 넘는 것만 검색하려면?

TIP 9: 데이터를 내장할 때 식별자 없이 검색하려면 배열에 저장하라.

배열로 만들어서 검색

TIP 10: 문서가 자급자족할 수 있도록 설계하라.

• MongoDB는 똑똑하지 않다.

TIP 10: 문서가 자급자족할 수 있도록 설계하라.

• MongoDB는 똑똑하지 않다.

TIP 10: 문서가 자급자족할 수 있도록 설계하라.

• findAndModify를 이용한 Locking을 이용한 방법

TIP 11: 자바스크립트보다는 제한자를 사용하라

• $where는 강력하다.

• 그러나 느리다!

– 제한자의 경우 BSON으로 전달 후 데이터도 BSON 이므로 파싱 없이 처리

– $where 조건의 경우 모든 데이터를 자바스크립트 객체로 생성하고 자바스크립트를 실행해야 함

TIP 11: 자바스크립트보다는 제한자를 사용하라

• 조금 더 빠르게!!!

TIP 12: 집계는 다른 작업과 함께 처리한다.

TIP 13: 데이터 무결성 문제에 대처하는 코드를 작성하라.

• 데이터 일관성을 어플리케이션에서 유지

• Cron 등의 주기적 작업이 필요

– Consistency Fixer

– Pre-Populater

– Aggregator

• 다른 유용한 Script

– Schema checker

– Backup Job