Explain the difference between Query and Scan operations.

Beginner

Answer

Query:

  • Uses primary key or index keys
  • Retrieves specific items efficiently
  • Lower cost and better performance
  • Can use filter expressions for additional filtering

Scan:

  • Examines every item in table/index
  • Expensive and slow for large tables
  • Uses filter expressions to return subset
  • Should be avoided in production for large datasets
# Query example
response = table.query(
    KeyConditionExpression=Key('user_id').eq('123')
)

# Scan example  
response = table.scan(
    FilterExpression=Attr('age').gt(21)
)