Una tabella DynamoDB denominata Orders utilizza OrderID come chiave di partizione (senza chiave di ordinamento) e contiene oltre 100.000 elementi. È necessario recuperare in modo efficiente tutti gli ordini il cui attributo OrderSource è uguale a 'MobileApp'. Qual è il design più efficiente per migliorare l'esperienza utente?
Scegli una risposta
Tocca un'opzione per controllare la tua risposta.
Risposta corretta: Creare un indice secondario globale (GSI) con OrderSource come chiave di partizione, quindi eseguire una Query sul GSI utilizzando MobileApp come chiave..
Perché questa è la risposta
La risposta corretta è creare un indice secondario globale (GSI) con OrderSource come chiave di partizione e poi eseguire una Query su questo GSI. Una Query su un GSI è efficiente perché accede direttamente agli elementi che corrispondono alla chiave di partizione specificata (MobileApp), evitando la scansione dell'intera tabella. Le altre opzioni sono meno efficienti: Eseguire una Scan sulla tabella principale è inefficiente per tabelle grandi (100.000 elementi) perché legge tutti i dati, consumando molte unità di capacità di lettura (RCU) e rallentando l'applicazione. Un indice secondario locale (LSI) richiede che la chiave di partizione sia la stessa della tabella principale (OrderID), il che non è utile per interrogare per OrderSource. Inoltre, un LSI non può avere una chiave di partizione diversa dalla tabella base. Creare un GSI con OrderSource come chiave di ordinamento non permetterebbe una Query diretta per OrderSource come valore esatto, ma piuttosto per intervalli o per combinazione con la chiave di partizione del GSI.
Supera il tuo esame — senza l'infinita caccia alle risposte
Ottieni ogni domanda e spiegazione verificata per questo esame in un unico posto, e risparmia ore di preparazione. Oltre 1.000 certificazioni · Oltre 20 lingue · Inizia gratuitamente.
Supera il tuo esame più velocemente → Nessuna carta richiesta