4. AWS DynamoDB实战之Secondary Indexes

什么是Secondary Indexes

二级索引的存在主要是为了支持基于不同字段的多种查询和排序操作.

DynamoDB表最基本的查询操作包括以下三种:

  • 一是根据主键进行查询,这是精确的查询,主键可以是只包含hashKey的简单主键,也可以是包含hashKey和rangeKey的组合主键
  • 二是根据hashKey进行查询操作,适用于组合主键的情况.可以获取拥有相同haskKey的所有数据,也就是查询操作是必须指定一个haskKey并以rangeKey进行排序,排序方式支持rangeKey升序或者降序.
  • 三是扫描(scan)整张表,这个是dynamodb不推荐的操作,因为cost比较大,扫描整张表就是会读取整张表,即便加了其他的filter条件,也是读取完所有的数据之后再做的过滤,扫描表的cost会按整张表的数据来计算,不光是花钱多,效率也很低,所以是dynamodb不推荐的操作.

综合上面三种操作我们发现,基于基表的查询操作比较局限, 只能支持一种特定的查询和排序操作.

那如果我想支持多种排序方式怎么办? 

解决方案就是使用二级索引,二级索引有两种, Global Secondary Indexes和 Local Secondary Indexes.

特征 全局二级索引 本地二级索引
键架构 可以是简单主键(分区键)或复合主键(分区键和排序键) 必须是复合主键(分区键和排序键)
键属性
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值