2
我最近正在研究Amazon提供的新NoSQL服务,更具体地说是DynamoDB。DynamoDB:如何使用散列键?
亚马逊说你应该避免使用不均匀分布的密钥作为主键,即主键应该是越独特越好。我可以看到这是每个项目都有唯一的主键是最好的情况吗?如何有一些项目与重复的键?
我想知道底层机制是如何工作的,所以我知道它有多糟。
我最近正在研究Amazon提供的新NoSQL服务,更具体地说是DynamoDB。DynamoDB:如何使用散列键?
亚马逊说你应该避免使用不均匀分布的密钥作为主键,即主键应该是越独特越好。我可以看到这是每个项目都有唯一的主键是最好的情况吗?如何有一些项目与重复的键?
我想知道底层机制是如何工作的,所以我知道它有多糟。
表根据散列键在多台机器上进行分区,所以随机越好越好。在我的应用程序中,我使用company_id作为散列,然后使用唯一的范围ID,这样我的表格可以合理地均匀分布。
他们试图避免的是,您对大部分数据使用相同的散列键,随机性越强,Dynamo就越容易让您的数据快速返回给您。
感谢您的答复,但如果我使用一些单调递增的整数作为关键字而不是完全随机的值呢? –
完美的作品。我通常使用随机生成的UUID,而不是仅仅为了更容易实现而增加计数。 – greg
散列也可以用来将事物逻辑分组在一起以加速查询。 –