1

province具有低基数并且start_date是时间戳的事件集合:

{
    name: 'Party',
    province: 'Rome',
    start_date: 1369762458
}

我知道将升序键作为分片键不是一个好的选择,最终会出现热点(所有写入都转到最后一个分片)。低基数又是一个糟糕的选择,因为我们最终会得到不可分割的块。

那么,由start_date+组成的复合键province是一个不错的选择吗?为什么在这种情况下没有热点?

4

1 回答 1

3

使用 start_date,省会很糟糕,因为分片键的第一部分将单调递增。但是,使用省,start_date 可能会更好,并且“热点”问题会减少(尽管可能不会消除)。

如果您同时有大量写入,只要它们代表多个不同的省份,它们就会被定向到不同的块。如果单个省份的写入数量不成比例,那么您最终可能会出现热点(或热块),但只要您在多个省份之间合理分配写入(并且只要您有相当高的数量)省而不是,比如说,两个或三个!)你最终也会分布“热点”。

于 2013-05-28T18:30:53.557 回答