indexingamazon-dynamodbsecondary-indexes

Difference between local and global indexes in DynamoDB


I'm curious about these two secondary indexes and differences between them. It is hard to imagine how this looks like. And I think, this will help more people than just me.


Solution

  • Local Secondary Indexes still rely on the original Hash Key. When you supply a table with hash+range, think about the LSI as hash+range1, hash+range2.. hash+range6. You get 5 more range attributes to query on. Also, there is only one provisioned throughput.

    Global Secondary Indexes defines a new paradigm - different hash/range keys per index.
    This breaks the original usage of one hash key per table. This is also why when defining GSI you are required to add a provisioned throughput per index and pay for it.

    More detailed information about the differences can be found in the GSI announcement