特定のレコードをデータベースから削除する必要がある時間を含む整数キー (タイムスタンプ) を持つテーブルがあります。このテーブルから、有効期限が現在よりも短いレコードを取得して削除するクリーニング クエリもあります。
Erlang のドキュメントによると、テーブル型には 、 、 、および の 4 つのタイプsetがordered_setありbagますduplicate_bag。
- setハッシュテーブルを使用して実装されているため、読み取りには O(1) 時間の複雑さがかかります。
- ordered_setツリーを使用して実装されているため、読み取りには O(log(n)) 時間の複雑さがかかりますが、結果の間隔でより適切に機能します。
- bag実装に関する情報は見つかりませんでした。
ordered_set理想的に思えますが、2 つのレコードが同じタイムスタンプを持つ可能性があるため、使用できません。質問は次のとおりです。
テーブルはどのようにbag実装されており、結果の間隔を照会するのに適していますか? そうでない場合、どうすれば " ordered_bag" 機能を取得できますか?