在 AWS 文档中:
每当在表上发生写入时,都必须更新表的所有索引。在具有大型表的大量写入环境中,这会消耗大量系统资源。在只读或以只读为主的环境中,这不是一个大问题。但是,您应该确保您的应用程序实际使用了索引,而不是简单地占用空间。
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/SQLtoNoSQL.Indexes.html
但是,如果我正在创建一个全局二级索引,并且该索引的属性没有发生任何更改,它会导致重写吗?
例如,假设我有下表:
关键字(哈希)| 电话号码(范围)| 属性 1...N | 帐户ID
KEYWORD
,PHONE NUMBER
并且ACCOUNT ID
不会更改(但可能会删除整个项目)。
还有一个全局二级索引:
帐户 ID(哈希)| 电话号码(范围)| 关键词
用例是我需要在第一个表中找到所有具有相同ACCOUNT ID
和PHONE NUMBER
. 然后我将需要该KEYWORD
属性。但是,这不需要经常发生。全局二级索引中的任何属性在任何时候都不会更改原始表中的任何属性。
文档不清楚(对我来说)。我假设如果ACCOUNT ID
,PHONE NUMBER
并且KEYWORD
不更改(但其他属性可能),则全局二级索引将不会写入。(但如果原始表项被删除,它将导致重写)。