Querying and scanning a DynamoDB table
DynamoDB has two different methods of retrieving data:
- Query
- Scan
DynamoDB is designed to be queried only by the key attributes. This means that if you wanted to query an attribute that wasn't a part of the key, then you would need to scan the entire table. This is fine for small tables, but as they grow in size the performance of the queries will rapidly decline. If you are from a SQL database background you can think of this in similar terms to a query being run against a table without an index. In addition to performance concerns, in DynamoDB, the more data you access in a table the more it costs, so queries that involve scanning the entire table can become costly. A query method can only be used if you are querying against the partition key, and a scan method is used if you are not using the partition key.
Let's take a look at an example using our high score table. If we want to get the high score for a player...