Database DynamoDB-查询查找表
我刚刚开始在DynamoDB中建立一个社交网站 我将拥有大量与用户相关的数据,我计划将这些数据全部放在一个表中-例如:Database DynamoDB-查询查找表,database,amazon-web-services,amazon-dynamodb,Database,Amazon Web Services,Amazon Dynamodb,我刚刚开始在DynamoDB中建立一个社交网站 我将拥有大量与用户相关的数据,我计划将这些数据全部放在一个表中-例如: 用户ID 出生日期 头发 照片网址 细节 等等-可能有几百个属性 问题: 把这么多的数据放在一个表中有什么问题吗 假设所有这些数据都包含在表中,我如何查询这些数据(我可以这样查询“这个年龄、这个颜色的头发、这个位置和这次登录的所有成员”) 如果一个表的内容很长,并且我在该表上像上面那样运行查询,那么读取IO的成本会很高吗?从长远来看,表中可能有很多条目 谢谢否。您不能以
- 用户ID
- 出生日期
- 头发
- 照片网址
- 细节
- 把这么多的数据放在一个表中有什么问题吗
- 假设所有这些数据都包含在表中,我如何查询这些数据(我可以这样查询“这个年龄、这个颜色的头发、这个位置和这次登录的所有成员”)
- 如果一个表的内容很长,并且我在该表上像上面那样运行查询,那么读取IO的成本会很高吗?从长远来看,表中可能有很多条目
谢谢否。您不能以这种方式查询DynamoDB。您只能查询主键(以及可选的单个范围)。扫描DynamoDB中的表速度慢且成本高,并且会导致其他查询挂起 如果属性数量较少,则可以轻松地为这些属性创建索引表。但如果属性数量较多,则会变得过于复杂 主表:
Primary Key (Type: Hash) - userid
Attributes - the rest of the attributes
“头发”索引表:
您也可以查看正在为其他属性添加索引的,因此允许您想要的查询。但它的规模和支持低延迟的能力有限
您还可以考虑多个数据存储和表的组合,因为您的实时和报告的要求不同:
- 用于快速实时用户查找的DynamoDB
- SimpleDB/RDBMS(如MySQL或),用于其他属性过滤器和查询
- 内存中的DB(如Redis、Casandra),用于计数器和表,作为引导板或队列
- 可以分析以发现模式和趋势的活动日志
Primary Key (Type: Hash and Range) - hair and userid