Lors de la création d'une table DynamoDB, sélectionnez des clés primaires et des index secondaires locaux (ISL) de sorte qu'une opération de requête renvoie les éléments souhaités.
Les opérations de requête ne prennent en charge qu'une évaluation de l'opérateur d'égalité de la clé primaire, mais conditionnelle (=, <, <=, >, >=, Between, Begin) sur la clé de tri.
Les opérations de balayage sont généralement plus lentes et plus coûteuses car l'opération doit parcourir chaque élément de votre table pour obtenir les éléments demandés.
Exemple:
Tableau: IDClient, TypeCompte, Pays, DernierAchat
Clé primaire: IDClient + TypeCompte
Dans cet exemple, vous pouvez utiliser une opération de requête pour obtenir:
- Un IDClient avec un filtre conditionnel sur le TypeCompte
Une opération de balayage devrait être utilisée pour renvoyer:
- Tous les clients avec un TypeCompte spécifique
- Éléments basés sur des filtres conditionnels par pays, c'est-à-dire tous les clients des États-Unis
- Éléments basés sur des filtres conditionnels par DernierAchat, c'est-à-dire tous les clients ayant fait un achat le mois dernier
Pour éviter les opérations de balayage sur les opérations fréquemment utilisées, créez un index secondaire local (ISL) ou un index secondaire global (ISG).
Exemple:
Tableau: IDClient, TypeCompte, Pays, DernierAchat
Clé primaire: IDClient + TypeCompte
ISG: TypeCompte + IDClient
ISL: IDClient + DernierAchat
Dans cet exemple, une opération de requête peut vous permettre d'obtenir:
- Un IDClient avec un filtre conditionnel sur le TypeCompte
- [ISG] Un filtre conditionnel sur les IDClient pour un TypeCompte spécifique
- [ISL] Un IDClient avec un filtre conditionnel sur le DernierAchat