【问题标题】:What is the difference between partition key and sort key in amazon dynamodb?amazon dynamodb 中的分区键和排序键有什么区别?
【发布时间】:2019-05-16 20:29:10
【问题描述】:

对比主键、复合键和候选键,dynamodb中的分区键和排序键是什么?

【问题讨论】:

标签: amazon-web-services amazon-dynamodb


【解决方案1】:

分区键用于对数据进行分区。具有相同分区键的数据存储在一起,这样您就可以在一次查询中查询具有相同分区键的数据。

(可选)排序键确定具有相同分区键的数据的存储顺序。使用巧妙的排序键可让您在 1 个查询中查询多个项目。

一个例子:假设我正在为多个应用程序存储日志数据。我的分区键可能是应用程序名称,排序键可能是日志的时间戳。这使我可以使用 BEGINS WITH 运算符在 1 个查询中查询特定应用程序的所有日志,甚至可以使用 BETWEEN 运算符查询应用程序上周三的所有日志。

分区键+可选排序键构成表的主键,所以它们必须是唯一的。此外,它们是不可变的。

您的分区键和排序键的选择应基于您最重要的访问模式。如果您有其他访问模式,您可以通过使用全局二级索引来适应它们,但这是有代价的。

【讨论】:

  • 同样的原则,即通过使用适当的分区和排序键在一个查询中返回更多数据,是否也适用于二级索引?
  • @RichardDunn 二级索引的工作方式基本相同。有本地二级索引,我认为这些警告足以让我通常根本不使用它们: - 创建表后无法添加/修改, - 如果表中有任何 LSI,总大小您的分区限制为 10 GB。 (没有 LSI 就没有实际限制。来源:docs.aws.amazon.com/amazondynamodb/latest/developerguide/…
  • @RichardDunn 全球二级索引 (GSI) 没有这些警告。对于那些,与主键的唯一区别是它们不能用强一致性来查询,只能用最终一致性来查询。
  • 谢谢,这是非常有用的信息。
猜你喜欢
  • 1970-01-01
  • 2021-05-07
  • 1970-01-01
  • 2010-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多