首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS DynamoDB本地和全局二级索引之间有什么区别?

AWS DynamoDB本地和全局二级索引之间有什么区别?
EN

Stack Overflow用户
提问于 2018-05-22 15:51:49
回答 2查看 2.1K关注 0票数 5

来自DynamoDB文档:

全局辅助索引-具有分区键和排序键的索引,可以与基表中的索引不同。全局辅助索引被认为是“全局的”,因为对索引的查询可以跨越基表中的所有数据,跨越所有分区。

本地辅助索引-具有与基表相同的分区键的索引,但具有不同的排序键。本地辅助索引是“本地的”,因为本地辅助索引的每个分区都限定为具有相同分区键值的基表分区。

这对我来说是没有意义的,再多的搜索也无法恰当地解释给我听。

有人能帮我理解这件事吗?

EN

回答 2

Stack Overflow用户

发布于 2018-05-22 19:59:38

当您将数据插入到DynamoDB时,它在内部对数据进行分区,并在内部存储不同的存储节点。这是基于分区键的。

假设您想要基于非键(分区或排序键)属性查询一个项,您需要使用扫描(因为它会检查表中的所有项),这是很昂贵的。

这就是GSI和LSI进来的地方。让我们以一个以StudentsId为排序键、SchoolId为分区键的Student表为例。

如果您的应用程序有类似于某所学校五年级所有学生的查询,LSI是非常有用的。

如果您需要查询所有五年级学生跨所有学校(跨越所有学校分区),您将需要一个GSI。

票数 4
EN

Stack Overflow用户

发布于 2018-06-20 12:18:38

本地辅助指数()

  • 只能在创建table时才能创建
  • capacity units共享table
  • indexpartition key必须和tablepartition key一样。
  • 一个table可以有5个LSI

全球二级指数()

  • 可以随时创建,但需要时间设置(由于将原始table项复制到索引table中,需要花费read capacity units of table)
  • 有一组单独的capacity unit
  • 任何attribute都可以是partition key
  • 一个table可以有5个GSI
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50471852

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档