1

日時であるETSに{Key, Value}データを保持します。内部で指定された時間内にすべてのアイテムを選択するのは非常に簡単です。ordered_setKey[From, To]

そんな感じ:

ets:select(Tab, [{{'$1', '$2'}, [{'>=', '$1', From}, {'=<', '$1', To}], ['$2']}])

関数内にLimitパラメータがselect()あるので、選択するアイテムの数を制限することができます。しかし、どうすればオフセットを指定できますか?

入力として、私のモジュールは時間間隔とページ番号を受け取ります。私の目標は、指定された時間間隔とページのアイテムを返すことです。ページサイズ(Limit)は定数です。オフセットを次のように計算できます

Offset = Limit * PageNumber - Limit

問題は、特定のページのみのアイテムを効果的に選択するにはどうすればよいですか?

関数がパラメーターselect()を受け取ることができることは知っていますが、前の選択からの状態がありません。Continuationページ番号しかありません。

可能ですが、他のデータ構造を使用する必要があります。より良い解決策をお勧めしてください。

4

1 に答える 1

0

ets マッチングは十分にスマートではないため、最初の選択でさえ効果的ではありません。この議論に従ってください。

于 2011-11-04T08:37:39.033 に答える