본문 바로가기

WebDev/Backend

Dynamodb Index

Dynamodb Index

이 글은 공식문서를 참고해 작성했다.


dynamodb에서는 빠른 쿼리를 위해 여타 DBMS처럼 인덱스를 제공한다.

dynamodb에서 제공하는 인덱스는 GSI(Global Secondary Index)와 LSI(Local Secondary Index) 2타입을 제공한다.


둘의 차이점을 비교정리해봤다.



 

GSL 

 LSI

 생성/제거 가능 시기

언제든지! 

테이블 생성/제거시에만 가능 

 해시 키 이름 제약

없음 

Table.hash_key===LSI.hash_key 

 read/write capacity

독립적 

테이블의 R/W Capacity 사용 

어트리뷰트 프로젝션 지원

 all, Keys only, include

 all, Keys only, include 

 크기 제한

없음 

해시 키당 10기가바이트

 지원 어트리뷰트 타입

String, Binary, Number같은 스칼라 타입만 가능

String, Binary, Number같은 스칼라 타입만 가능


Projection Attribute Option

  • all 모든 어트리뷰트를 인덱스에서 사용 가능 (함부로 사용하면 안됨)
  • Keys only 말 그대로 hash_key와 range_key만
  • include 추가로 특정 어트리뷰트를 챙겨오는 것을 의미한다.


Index를 늘리는 건 결국 스칼라 타입 어트리뷰트에 대해 range_key를 추가하는 행위일 뿐, 그 외의 의미는 없다..

구현도 파티셔닝 방식을 사용했기에, 데이터의 복사가 일어난다. 그래서 Projection Attribute Option을 함부로 all로 지정하면 안되는거다.

all로 설정하면 데이터 저장에 필요한 용량이 용량이 2배가 되는 기적이! 요금도 솟아오르는 기적이!



'WebDev > Backend' 카테고리의 다른 글

ElasticBeanstalk Deploy  (0) 2016.03.29
AWS EC2 New SSH User  (0) 2016.03.28
DynamoDB Operator  (0) 2016.01.24
django deploy with sqlite3  (0) 2016.01.22
Cross Domain AJAX  (0) 2016.01.21