Projection
Once we have an understanding of the secondary index, we are all set to learn about projection. While creating the secondary index, it is mandatory to specify the hash and range attributes, based on which the index is created. Apart from these two attributes, if the query wants one or more attribute (assuming that none of these attributes are projected into the index), then DynamoDB will scan the entire table. This will consume a lot of throughput capacity and will have comparatively higher latency.
The following is the table (with some data) that is used to store book information:
Here are few more details about the table:
The
BookTitle
attribute is the hash key of the table and local secondary indexThe
Edition
attribute is the range key of the tableThe
PubDate
attribute is the range key of the index (let's call this indexIDX_PubDate
)
Local secondary index
While creating the secondary index, the hash and range key of the table and index will be inserted into the index; optionally...