31、DynamoDB:NoSQL数据库服务编程指南

DynamoDB:NoSQL数据库服务编程指南

1. DynamoDB查询问题及解决方案

1.1 查询问题

在使用DynamoDB进行查询时,会遇到两个主要问题:
- 过滤速度慢 :过滤操作在没有索引的情况下,需要检查每一个项目。例如,在查询苹果股票价格时,如果要筛选出周一的价格,需要对所有价格进行过滤,这会浪费大量资源。
- 只能查询主键 :无法直接查询非主键属性,例如无法直接返回所有用户特定类别的任务列表。

1.2 解决方案:使用二级索引

为了解决上述问题,可以使用二级索引,包括全局二级索引和本地二级索引。

1.2.1 全局二级索引

全局二级索引是原始表的投影,由DynamoDB自动维护。索引中的项目没有主键,只有一个键,该键在索引内不一定唯一。

例如,在用户表中,以国家属性作为新的分区键创建全局二级索引,由于很多用户可能来自同一个国家,所以该键在索引中不唯一。

全局二级索引的使用方式与查询表类似,可以将其想象成一个只读的DynamoDB表,当对父表进行更改时,所有索引会异步更新。

创建全局二级索引会带来一定的成本,包括存储成本和额外的写容量单位。但DynamoDB的优势在于可以根据工作负载来配置容量,如果某个全局二级索引的读流量很大,可以增加该索引的读容量。

以下是在 nodetodo 应用中添加全局二级索引的示例:

$ a
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值