我将{Key, Value}
数据保存在 ETSordered_set
中,其中Key
是日期时间。在给定时间内选择所有项目非常容易 internal [From, To]
。
像这样的东西:
ets:select(Tab, [{{'$1', '$2'}, [{'>=', '$1', From}, {'=<', '$1', To}], ['$2']}])
我们Limit
在函数中有参数,select()
因此我们能够限制要选择的项目数量。但是如何指定偏移量?
作为输入,我的模块接收时间间隔和页码。我的目标是返回指定时间间隔和页面的项目。页面大小 ( Limit
) 是一个常数。我可以计算一个偏移量
Offset = Limit * PageNumber - Limit
问题是我如何才能有效地只为给定页面选择项目?
我知道该select()
函数可以接收Continuation
参数,但我没有之前选择的状态。我只有一个页码。
可能,我必须使用其他数据结构。请推荐更好的解决方案。