Secondary Index
- Bạn có thể tạo một hoặc nhiều Secondary Index trên một table.
- Secondary Index cho phép truy vấn dữ liệu trong table bằng các key khác với partition key và sort ban đầu của table. Với Dynamo DB thao tác query dữ liệu có tốc độ nhanh và tiết kiệm chi phí hơn rất nhiều so với thao tác scan.
Dưới đây là DynamoDB table ví dụ:

- Nếu thực hiện thao tác query dữ liệu chúng ta có thể tìm dữ liệu theo giá trị Partition Key và Sort Key.

- Nếu thực hiện thao tác scan dữ liệu, chúng ta sẽ scan toàn bộ bảng sau đó thực hiện filter theo một attribute bất kỳ. ( Khi thực hiện filter thực chất chúng ta vẫn phải tốn chi phí scan toàn bộ bảng.)

- DynamoDB không bắt buộc bạn phải sử dụng index, nhưng chúng giúp các ứng dụng của bạn linh hoạt hơn khi query dữ liệu. Sau khi tạo Secondary Index trên table, bạn có thể đọc dữ liệu từ index theo cách giống như đọc dữ liệu từ table.
DynamoDB hỗ trợ hai loại index:
- Global secondary index index có partition key và sort key có thể khác với các index trên table.

- Local secondary index index có cùng partition key với table nhưng có sort key khác.

Mỗi table trong DynamoDB có tối đa 20 Global secondary index (giới hạn mặc định) và 5 Local secondary index.