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