C. aws dynamodb get-item --table-name MyTable --key '{"Id":{"S":"123"}}'
D. aws dynamodb update-item --table-name MyTable --key '{"Id":{"S":"123"}}'
Solution
Step 1: Identify Query command syntax
The Query operation uses 'aws dynamodb query' with key-condition-expression and expression-attribute-values.
Step 2: Check other options
Scan reads the entire table (and does not support --key-condition-expression), get-item retrieves a single item by exact key, update-item modifies items, so only the Query syntax is correct.
4. You wrote this DynamoDB Scan command but it is very slow:
aws dynamodb scan --table-name Users
What is the best way to improve performance if you only want users with UserId = '123'?
medium
A. Replace Scan with Query using KeyConditionExpression on UserId
B. Add a FilterExpression to the Scan command
C. Increase the Read Capacity Units of the table
D. Use UpdateItem to modify the UserId
Solution
Step 1: Identify problem with Scan
Scan reads all items, causing slowness when filtering after reading.
Step 2: Use Query for known key
Query with KeyConditionExpression on UserId reads only matching items, improving speed.
Final Answer:
Replace Scan with Query using KeyConditionExpression on UserId -> Option A
Quick Check:
Known key = Query, not Scan [OK]
Hint: Use Query with key condition, not Scan with filter [OK]
Common Mistakes:
Adding filter to Scan instead of using Query
Increasing capacity without optimizing query
Using UpdateItem unrelated to read performance
5. You have a DynamoDB table with 1 million items. You need to retrieve all items where the attribute 'Status' equals 'Active'. The table's primary key is 'UserId'. Which approach gives the best performance and cost efficiency?
hard
A. Use Scan with FilterExpression 'Status = Active' to get all matching items
B. Create a Global Secondary Index (GSI) on 'Status' and use Query on the GSI
C. Use Query on the primary key 'UserId' with FilterExpression 'Status = Active'
D. Use Scan without any filter and filter results in your application code
Solution
Step 1: Understand Scan with filter
Scan reads all 1 million items, filtering after reading, which is slow and costly.
Step 2: Use GSI for efficient querying
Creating a GSI on 'Status' allows Query to directly find 'Active' items efficiently.
Step 3: Evaluate other options
Query on primary key can't filter by 'Status' efficiently; scanning without filter wastes resources.
Final Answer:
Create a Global Secondary Index (GSI) on 'Status' and use Query on the GSI -> Option B
Quick Check:
GSI + Query = best performance for non-key attribute [OK]
Hint: Use GSI and Query for non-key attribute filtering [OK]
Common Mistakes:
Using Scan with filter on large tables
Querying primary key with filter instead of GSI
Filtering in application after full Scan
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.