При створенні таблиці Dynamodb виберіть Первинні ключі та Локальні вторинні індекси (LSI), щоб операція Запит повертала потрібні Вам елементи.
Операції запитів підтримують лише рівну оцінку оператора Первинного ключа, але умовну (=, <, <=,>,> =, Між, Початок) для Ключа сортування.
Операції сканування, як правило, повільніші та дорожчі, оскільки операція повинна перебирати кожен елемент у вашій таблиці, щоб отримати елементи, які ви вимагаєте.
Приклад:
Table: CustomerId, AccountType, Country, LastPurchase
Primary Key: CustomerId + AccountType
У цьому прикладі ви можете використовувати операцію запиту, щоб отримати:
- Ідентифікатор клієнта з умовним фільтром на AccountType
Потрібно використовувати операцію сканування для повернення:
- Усі Клієнти з певним Типом рахунку
- Товари на основі умовних фільтрів за країнами, тобто для всіх клієнтів із США
- Товари на основі умовних фільтрів LastPurchase, тобто всіх клієнтів, які здійснили покупку за останній місяць
Щоб уникнути операцій сканування часто використовуваних операцій, створюйте Локальний вторинний індекс (LSI) або Глобальний вторинний індекс (GSI).
Приклад:
Table: CustomerId, AccountType, Country, LastPurchase
Primary Key: CustomerId + AccountType
GSI: AccountType + CustomerId
LSI: CustomerId + LastPurchase
У цьому прикладі операція запиту може дозволити вам отримати:
- Ідентифікатор клієнта з умовним фільтром на AccountType
- [GSI] Умовний фільтр за ідентифікаторами клієнтів для певного типу AccountType
- [LSI] Ідентифікатор клієнта з умовним фільтром на LastPurchase