DynamoDB:NoSQL数据库服务编程指南
1. DynamoDB查询问题及解决方案
1.1 查询问题
在使用DynamoDB进行查询时,会遇到两个主要问题:
- 过滤速度慢 :过滤操作在没有索引的情况下,需要检查每一个项目。例如,在查询苹果股票价格时,如果要筛选出周一的价格,需要对所有价格进行过滤,这会浪费大量资源。
- 只能查询主键 :无法直接查询非主键属性,例如无法直接返回所有用户特定类别的任务列表。
1.2 解决方案:使用二级索引
为了解决上述问题,可以使用二级索引,包括全局二级索引和本地二级索引。
1.2.1 全局二级索引
全局二级索引是原始表的投影,由DynamoDB自动维护。索引中的项目没有主键,只有一个键,该键在索引内不一定唯一。
例如,在用户表中,以国家属性作为新的分区键创建全局二级索引,由于很多用户可能来自同一个国家,所以该键在索引中不唯一。
全局二级索引的使用方式与查询表类似,可以将其想象成一个只读的DynamoDB表,当对父表进行更改时,所有索引会异步更新。
创建全局二级索引会带来一定的成本,包括存储成本和额外的写容量单位。但DynamoDB的优势在于可以根据工作负载来配置容量,如果某个全局二级索引的读流量很大,可以增加该索引的读容量。
以下是在 nodetodo 应用中添加全局二级索引的示例:
$ a
超级会员免费看
订阅专栏 解锁全文
19

被折叠的 条评论
为什么被折叠?



