Podczas tworzenia tabeli Dynamodb wybierz opcję Klucze podstawowe i Lokalne indeksy pomocnicze (LSI), aby operacja zapytania zwróciła żądane elementy.
Operacje zapytań obsługują tylko ocenę operatora równości klucza podstawowego, ale warunkową (=, <, <=,>,> =, między, początek) w kluczu sortowania.
Operacje skanowania są na ogół wolniejsze i droższe, ponieważ operacja musi iterować każdy element w tabeli, aby uzyskać żądane elementy.
Przykład:
Table: CustomerId, AccountType, Country, LastPurchase
Primary Key: CustomerId + AccountType
W tym przykładzie możesz użyć operacji Zapytanie, aby uzyskać:
- CustomerId z filtrem warunkowym na AccountType
Aby zwrócić:
- Wszyscy klienci z określonym typem konta
- Pozycje oparte na filtrach warunkowych według Kraju, tj. Wszyscy Klienci z USA
- Pozycje oparte na filtrach warunkowych według LastPurchase, czyli Wszyscy Klienci, którzy dokonali zakupu w ostatnim miesiącu
Aby uniknąć operacji skanowania na często używanych operacjach, należy utworzyć lokalny indeks pomocniczy (LSI) lub globalny indeks pomocniczy (GSI).
Przykład:
Table: CustomerId, AccountType, Country, LastPurchase
Primary Key: CustomerId + AccountType
GSI: AccountType + CustomerId
LSI: CustomerId + LastPurchase
W tym przykładzie operacja kwerendy pozwala uzyskać:
- CustomerId z filtrem warunkowym na AccountType
- [GSI] Warunkowy filtr CustomerIds dla określonego AccountType
- [LSI] CustomerId z filtrem warunkowym LastPurchase