AWS DynamoDB LSI 项目集合大小限制
AWS DynamoDB LSI item collection size limit
我正在尝试了解 AWS DynamoDB 的真正行为是什么。
当我为 table 创建本地二级索引 (LSI) 时,文档说,项目集合有 10 GB 的限制。
Docs
这到底是什么意思?
假设我的数据分为 3 个分区,那么问题是:
- 每个分区将有 10GB 的 LSI 限制或所有分区的一般限制?
- 如果我达到限制,比方说,我继续向 table 写入数据,这意味着数据将在 table 中,但 LSI 看不到?或者如何?据我所知,一般数据将在 table 中可用,但如果我通过 LSI 查询,它将只显示旧项目,我们在达到限制之前成功写入,但如果我将扫描所有 table - 我会看到所有项目(旧的和新的)?对吗?
感谢您的帮助
谢谢
可能的答案:
这个post帮助我理解了
如果特定项目集合(在 table 及其所有本地二级索引中具有相同分区键值的任何项目组)达到 10GB 的限制,则会引发异常。
因此,如果具有特定分区键的项目数量不是那么大 - 您可以节省使用 LSI。
你误读了文档...
项目集合大小限制适用于 table 本身...
The maximum size of any item collection is 10 GB. This limit does not
apply to tables without local secondary indexes. Only tables that have
one or more local secondary indexes are affected.
因此,如果您有一个带有 LSI 的 table,那么您在 table 中的任何给定分区键都不能超过 10GB。
如果您有大量数据,一个解决方案是付费使用与 table 分区键相同但排序键不同的 GSI 而不是免费的 LSI。
我正在尝试了解 AWS DynamoDB 的真正行为是什么。 当我为 table 创建本地二级索引 (LSI) 时,文档说,项目集合有 10 GB 的限制。 Docs
这到底是什么意思?
假设我的数据分为 3 个分区,那么问题是:
- 每个分区将有 10GB 的 LSI 限制或所有分区的一般限制?
- 如果我达到限制,比方说,我继续向 table 写入数据,这意味着数据将在 table 中,但 LSI 看不到?或者如何?据我所知,一般数据将在 table 中可用,但如果我通过 LSI 查询,它将只显示旧项目,我们在达到限制之前成功写入,但如果我将扫描所有 table - 我会看到所有项目(旧的和新的)?对吗?
感谢您的帮助 谢谢
可能的答案:
这个post帮助我理解了
如果特定项目集合(在 table 及其所有本地二级索引中具有相同分区键值的任何项目组)达到 10GB 的限制,则会引发异常。
因此,如果具有特定分区键的项目数量不是那么大 - 您可以节省使用 LSI。
你误读了文档...
项目集合大小限制适用于 table 本身...
The maximum size of any item collection is 10 GB. This limit does not apply to tables without local secondary indexes. Only tables that have one or more local secondary indexes are affected.
因此,如果您有一个带有 LSI 的 table,那么您在 table 中的任何给定分区键都不能超过 10GB。
如果您有大量数据,一个解决方案是付费使用与 table 分区键相同但排序键不同的 GSI 而不是免费的 LSI。