programming/database2014.12.10 17:45

MongoDB를 주로 쓰다가 AWS 환경을 염두에 두게되면서 DynamoDB를 알아보던 중 눈에 들어온 글이 있어 대충 번역해서 공유해봅니다.

출처 : http://www.masonzhang.com/2013/08/7-reasons-you-should-use-mongodb-over.html


DynamoDB 대신 MongoDB를 써야 하는 7가지 이유


이유 1 : 인덱싱 필드가 변경될 수 있다면 MongoDB를 써라.

DynamoDB는 인덱싱 필드가 변경이 안된다고 합니다.... 으허


이유 2 : document database가 필요하다면 MongoDB를 써라.

DynamoDB는 key-value방식이라 sub-document를 지원하지 않습니다.


이유 3 : Perl, Erlang, C++로 개발할거면 MongoDB를 써라.

DynamoDB는 Java, JavaScript, Ruby, PHP, Python, .NET 만 지원합니다.


이유 4 : 한 item에 저장할 데이터가 64k를 넘는다면 MongoDB를 써라.

DynamoDB는 한 item(key-value)에 64k 까지만 저장 된다는데... 제가 직접 Limits에서 확인해본 바로는 keyname size(attribute)와 value size 포함해서 총 itemsize가 400kb를 넘으면 안된다고 나와 있네요. 일본어 버전 설명서에는 아직 64kb라고 나와있는 것으로 봐서 버전업이 있었나 봅니다.. 여쨌든 400kb라도 넉넉하긴한데 신경쓰이는 수치네요..


이유 5 : string, number, base64 인코딩된 바이너리 외의 데이터타입을 쓸 계획이라면 MongoDB를 써라.

예전에는 일부 스칼라와 스칼라 세트만 제공했었나 보네요.. DataModel 문서를 보면 Document Data Type으로 Complex data structure도 저장할 수 있는 것으로 봐서 이 부분은 큰 문제 없을 것으로 보입니다.


이유 6 : 쿼리에 정규식을 쓸거라면 MongoDB를 써라.

DynamoDB는 scan시에 string substring이나 contains같은 간단한 기능만 제공한다네요.


이유 7 : Document Database에 흥미가 있다면 MongoDB를 써라.

이건 뭐 원글쓴이 개인적인 경험담인데.. MongoDB를 개발한 10gen에서 유저들과 소통이 원활해서 좋았다고 하네요..



원글 외에 단점을 추가하자면

- Query나 Scan의 결과 최대 크기가 1MB까지라는 점... (Scan은 재호출시 다음 결과가 이어서 검색됨)

- Batch 작업 제한도 대부분 1MB제한에 100개 항목 제한...


결론

- MongoDB나 SQL류 DB 대신 쓸 계획이라면 Limits와 DataType에 대해 정말정말 신중하게 알아봐야 함

- Redis나 Memcache로 써도 되는 데이터인데, 저장과 검색이 필요한 데이터라면 고려해볼만함

- 무난한 장점들이 있는 반면 작은 단점이 너무 큼.... 

저작자 표시 동일 조건 변경 허락
신고
Posted by 귀뫄뉘
TAG

댓글을 달아 주세요


티스토리 툴바