是否可以扩展以对每天只增加一次价值的实体建立每日时间戳索引?本质上,类似于最佳实践文档中解释的生成字段here(尽管该文档链接专注于删除,但我专注于写入)。第一天该字段的值为
1
,第二天为 2
,依此类推。然后您可以对该生成字段进行排序以获取按天排序的实体。
这样的模型有没有热点问题?因为从技术上讲,它是一个单调递增的字段,但该值每天只增加一次。
编辑:
考虑一个如下所示的实体:
Task
tag: String
generation: Integer
应用程序中的其他位置是一个静态全局整数,其值设置为
1
。
static int GLOBAL_VARIABLE = 1;
这个全局计数器的值每天在特定时间都会增加
1
,这可能是通过部署更新了硬编码值的新应用程序来实现的。
编写
Task
实体时,generation
字段将设置为该全局整数。
现在您可以查询具有给定
Task
和 tag
的所有 generation
实体。您还可以按 generation
排序,从今天开始,Tasks
位于列表顶部,随后的日子位于列表底部。
这样的东西可以扩展吗?或者这会遇到问题吗?假设您写入非常频繁,每秒超过 500 次。
以社区维基的身份回答这个问题。正如道格·史蒂文森在评论中提到的那样
您有一个生成字段而不是时间戳,其中性能是一个问题 在您的场景中,生成字段每天增加一次,并且每秒写入超过 500 次,给定日期的所有记录都具有相同的生成值。因此,在突发期间写入相同的值根本不会导致索引分区范围必须增长。