我们正在从MongoDB和其他服务转向AWS,所以我们决定使用DynamoDB等。
目前,在Mongo中,我的馆藏以product_platform
命名,其中平台代表ios
或android
。
我打算在DynamoDB中类似地划分我的记录,但我读到我应该只使用多个表,如果必须,老实说我宁愿将所有内容存储在一个表中。但是,我必须在DynamoDB中的product
和platform
列上设置索引。但文档说
如果单个表只有少量的分区键值, 考虑将您的写操作分布得更加独特 分区键值。换句话说,构造主键 避免一个“热”(严重请求)分区键值的元素 这会降低整体表现。
和
状态代码,其中只有几个可能的状态代码。不好(例子)
如果我在product
和platform
设置索引,那就是我要做的。
一些假设:
- 有10种不同的products
,总是2 platforms
- 每个product
platform
对包含40mln事件,因此总共有800毫升事件
设计此表的最佳方法是什么?
1.一张表格上有product
和platform
的索引
2. product
和platform
上没有索引的一个表
3. 20 product_platform
个表格。
关于设计DynamoDB结构已经有一些类似的问题,但是他们都没有帮助我回答我提出的问题。