📜  DynamoDB –主键

📅  最后修改于: 2021-04-16 06:03:23             🧑  作者: Mango

主键用于唯一标识表中的每个项目。任何两个项目都不能具有相同的主键。在DynamoDB中,创建表时必须指定主键以及表名。
DynamoDB支持两种不同类型的主键:

  • 分区键
  • 分区键和排序键

分区键–

这是一个简单的主键,由一个属性组成。DynamoDB利用分区键的值作为内部哈希函数的输入。该哈希函数的输出将设置要存储项目的分区(DynamoDB内部的物理存储)。仅具有分区键的表不允许有多个具有相同分区键值的项。例如,查看下面描述的表:

People表具有一个简单的主键(PersonID)。您可以通过提供该项目的PersonId值来直接访问“ People表中的任何项目。

分区键和排序键–

也称为复合主键,此键包含两个属性,即partition键和sort键。DynamoDB使用分区键值作为内部哈希函数的输入。哈希函数的输出设置将存储项目的分区。具有相同分区键值的每个项目都按排序键值的排序顺序存储在一起。在具有分区键和排序键的表中,假设两个项目具有不同的排序键值,则允许两个项目具有相同的分区键值。例如,查看下面描述的音乐数据库:

上面的Music表是带有复合主键( ArtistSongTitle )的表的示例。如果您提供“ Music表中的“ Artist和“ SongTitle值,则可以直接访问“ Music表中的任何项目。复合主键在查询数据时为用户提供了更多的灵活性。例如,如果您仅提供Artist的值,则DynamoDB会检索该Artist的所有歌曲。要仅获取特定歌手的歌曲的子集,可以提供Artist的值以及SongTitle的值范围。