使用 GSI 列出 table 中所有项目的 DynamoDB

DynamoDB for listing all items in the table using GSI

我在 dynamodb

中有一个这样的 table
name(PK) key(SK) description
read user Read User
read account Read Account
write user Write User

我想列出 table 中的所有数据,但我不想对 table 执行扫描。所以我在tableallIndex上加了一个索引。它的值将始终相同(例如all

name(PK) key(SK) description allIndex
read user Read User all
read account Read Account all
write user Write User all

现在我可以使用 allIndex 进行查询以列出 table 中的所有数据。好处是所有数据都将驻留在 dynamodb 的 GSI 中的同一分区中。我想知道这样做是否是个好主意?还是会导致 GSI 上出现热分区?

scan 是适合您的用例的选项。

当您过滤应用程序中的数据子集时,

query 优于 scanscan 操作可能很昂贵,因为它必须读取数据库中的每个项目。如果您只是获取一些项目,这是一个坏主意。但是,如果您的访问模式需要您读取整个数据库,scan 最佳选择。