AWS DynamoDB数据库使用总结
2018-07-15 本文已影响1843人
and2long
关于hashKey、rangeKey比较详细的介绍:
stackoverflow回答:https://stackoverflow.com/questions/27329461/what-is-hash-and-range-primary-key
官方文档参考资料:https://aws.amazon.com/cn/blogs/database/choosing-the-right-dynamodb-partition-key/
概述
- DynamoDB由表(table)、项目(item)、属性(attribute)三部分组成。
- 每一个项目由主键和属性组成。
- 主键可以只有hashkey,或着hashKey+rangeKey,这样确定一个item在表中的唯一性。
- hashKey决定item在表中的分区位置,DDB会将相同hashKey的item储存在同一分区,方便检索。
- rangeKey的作用就是对结果数据进行排序。
数据库操作
官方文档:https://docs.aws.amazon.com/aws-mobile/latest/developerguide/add-aws-mobile-nosql-database.html#add-aws-mobile-nosql-database-query
包含了Android和IOS的CRUD操作示例代码。
灵活使用query方法
DynamoDB的SDK执行查询方法时必须指定hashKey,就是相当于告诉DDB数据所在分区,缩小了查询范围,也就减小了吞吐量。
全局二级索引
当默认的hashKey+rangeKey不能满足现有的查询需求时,需要创建全局二级索引。
这里,一定要注意:当使用全局二级索引当作查找条件时,一定要确保默认的hashKey为空,不然结果总是出任意料。
因为当hashKey和全局二级索引都有值时,会默认使用hashKey作为查询主键。