热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

DynamoDB全局二级索引本地二级索引

全局二级索GlobalSecondaryIndexes引包含从基表中选择的一组属性,但是这些属性按与表主键不同的主键进行排列。其分区键和排序键可以与基表上的分区键和排

全局二级索

Global Secondary Indexes 引包含从基表中选择的一组属性,但是这些属性按与表主键不同的主键进行排列。其分区键和排序键可以与基表上的分区键和排序键不同的索引。全局二级索引被视为“全局”,是因为对索引执行的查询可以跨基表中所有分区的所有数据。

 

本地二级索引

local secondary index 为给定分区键值维护一个替代排序键。local secondary index还包含其基表中部分或所有属性的副本;您可以在创建表时指定要投影到local secondary index中的属性。local secondary index中的数据通过与基表相同的分区键来组织,但使用不同的排序键。

分区键与基表相同、但排序键不同的索引。local secondary index的含义是“本地”,表示local secondary index的每个分区的范围都将限定为具有相同分区键值的基表分区。

为获得最大查询灵活性,您可以为每个表创建多达 20 个全局二级索引(默认限制)和多达 5 个local secondary index。

全局二级索引与local secondary index的主要差异:

 

特征全局二级索引本地二级索引
键架构全局二级索引的主键可以是简单主键(分区键)或复合主键(分区键和排序键)。local secondary index的主键必须是复合主键(分区键和排序键)。
键属性索引分区键和排序键 (如果有) 可以是字符串、数字或二进制类型的任何基表属性。索引的分区键是与基表的分区键相同的属性。排序键可以是字符串、数字或二进制类型的任何基表属性。
每个分区键值的大小限制全局二级索引没有大小限制。对于每个分区键值,所有索引项目的大小总和必须为 10GB 或更小。
在线索引操作您可以在创建表时创建Global secondary index。您也可以向现有表添加新全局二级索引,或者删除现有全局二级索引。有关更多信息,请参阅管理全局二级索引。本地二级索引是在创建表的同时创建的。您不能向现有表添加local secondary index,也不能删除已存在的任何local secondary index。
查询和分区通过全局二级索引,可以跨所有分区查询整个表。借助local secondary index,您可以对查询中分区键值指定的单个分区进行查询。
读取一致性对全局二级索引进行的查询仅支持最终一致性。查询local secondary index时,您可以选择最终一致性或强一致性。
预置吞吐量使用每个全局二级索引都有自己的用于读取和写入活动的预置吞吐量设置。对全局二级索引执行的查询或扫描会占用索引 (而非基表) 的容量单位。全局二级索引更新也是如此,因为会进行表写入。对local secondary index执行的查询或扫描会占用基表的读取容量单位。向表写入时,其local secondary index也会更新;这些更新会占用基表的写入容量单位。
投影属性对于全局二级索引查询或扫描,您只能请求投影到索引的属性。DynamoDB 不会从表中获取任何属性。如果您查询或扫描local secondary index,则可以请求未投影到索引的属性。DynamoDB 会自动从表中获取这些属性。

转:https://www.cnblogs.com/cloudrivers/p/11424928.html



推荐阅读
  • 基于STM32的智能太阳能路灯设计与华为云IOT集成方案
    基于STM32的智能太阳能路灯设计与华为云IOT集成方案 ... [详细]
  • 在MySQL 5.1.22之前的版本中,InnoDB通过表级锁来确保自增字段的一致性。具体来说,InnoDB内部使用一个计数器来维护自增值,每次插入新记录时都需要获取表锁以保证数据的一致性和完整性。这种机制虽然简单,但在高并发环境下会显著影响性能。 ... [详细]
  • 阿里巴巴Java后端开发面试:TCP、Netty、HashMap、并发锁与红黑树深度解析 ... [详细]
  • Spring 中获取 Request 的多种方式及其线程安全性的深入解析
    本文深入探讨了在Spring MVC框架下获取HTTP请求对象的多种方法,详细分析了每种方法的实现原理及其线程安全性,为开发者提供了全面的技术参考。 ... [详细]
  • 综合实训 201521440015
    Chinesepeople’publicsecurityuniversity网络对抗技术实验报告实验五综合渗透学生姓名常泽远年级15区队4指导教师高见信息技术与网络安全学院2018 ... [详细]
  • Kubernetes部署常见问题及解决方案汇总
    本文汇总了在Kubernetes部署过程中常见的问题及其解决方案,涵盖了从配置错误到网络故障等多个方面,旨在帮助开发人员和运维人员快速定位并解决实际操作中遇到的技术难题。通过详细的案例分析和最佳实践建议,读者可以更好地理解和掌握Kubernetes的部署技巧,提高系统的稳定性和可靠性。 ... [详细]
  • 快速概览软件架构风格:从历史到现代的全面总结与分析
    每个软件项目都是不同的,但这并不意味着我们没有可以挑选的趋势。大泥球(BigBallofMud)当您不选择架构时,您最终会得到BigBallofMud ... [详细]
  • 锐意创新,蓄势待发!低代码领军企业流辰信息携手共创辉煌未来!
    拥有雄厚研发实力团队的低代码公司,初心未改,匠心未泯,努力钻研低代码开发发展方向,锐意进取,与各中大型企业携手共进,同创辉煌。在数字化发展趋势越来越明显的当今社会,低代码公司流辰 ... [详细]
  • {moduleinfo:{card_count:[{count_phone:1,count:1}],search_count:[{count_phone:4 ... [详细]
  • Android开发常见问题汇总(含Gradle解决方案)第二篇
    本文继续深入探讨Android开发中常见的问题及其解决方案,特别聚焦于Gradle相关的挑战。通过详细分析和实例演示,帮助开发者高效解决构建过程中的各种难题,提升开发效率和项目稳定性。 ... [详细]
  • 本文探讨了Huffman树在数据结构中的应用及其原理。Huffman树,即哈夫曼树,是一种高效的数据压缩技术,通过构建最优二叉树实现编码,广泛应用于文件压缩和网络传输中,有效减少数据存储和传输的空间需求。 ... [详细]
  • 在使用Eclipse IDE进行Java开发时,遇到了一个新编写的函数变量无法在调试模式下正确显示的问题。具体表现为,尽管函数内部已插入新的代码段,但这些新变量并未出现在“变量”视图中,仅能显示作为参数传递的变量。经过初步排查,发现这可能是由于IDE配置不当或项目构建路径设置错误所致。本文将详细探讨可能的原因,并提供相应的解决方案,以帮助开发者有效解决这一问题。 ... [详细]
  • 在Eclipse环境中部署Spring框架源码的过程中,本文详细探讨了Junit加载ApplicationContext的具体实现方法。通过使用`ClassPathXmlApplicationContext`类,可以有效地初始化Spring容器,从而便于单元测试的执行。此外,文章还深入分析了Spring框架的核心机制,包括依赖注入和AOP等方面的原理,为开发者提供了宝贵的实战经验和技术指导。 ... [详细]
  • 在 Red Hat 系统的启动过程中,首先运行的程序是 `/sbin/init`。该程序会读取 `/etc/inittab` 文件,并根据其中的配置进行系统的初始化工作。例如,它会根据设定的运行级别启动相应的服务和进程,确保系统能够顺利进入指定的运行状态。此外,`/sbin/init` 还负责管理系统关机和重启等操作,确保系统的稳定性和安全性。 ... [详细]
  • 利用命令行配置 ASP.NET Core 发布后的监听地址与环境变量设置
    通过命令行配置 ASP.NET Core 应用程序的发布设置,可以灵活地调整监听地址和环境变量。本文介绍如何在新建的 ASP.NET Core 项目中,通过修改 `Program.cs` 文件中的代码来实现这一功能。具体步骤包括在 `Program` 类的 `Main` 方法中添加相应的配置代码,以确保应用程序在不同环境中能够正确运行。此外,还将详细介绍如何使用命令行工具来设置和验证这些配置项,从而提高开发和部署的效率。 ... [详细]
author-avatar
多米音乐_35794462
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有