2

毎秒 1 エントリ (約 300KB) のデータ エントリ レートを持つデータベースの圧縮をサポートする必要があります。データベース ファイルは 3GB に達することがあります。現在のデータベースには自動バキューム機能がありません。データベース ファイルの容量が特定の制限 (たとえば 3GB) を超えるのは、最悪のシナリオです。

私の現在の戦略は、(クラスター化された主キーによって) 最も古いデータを削除してから、CHECKPOINT DEFRAG を実行することです。これは信頼できるものではないようで、VACUUM または DEFRAG には長い時間がかかる可能性があります。データベース名に名前を付けたくありませんが、提案は受け付けています。

確実に (ダウンタイムがほとんどまたはまったくない、O(1) の操作速度で) ディスク容量を確保するために、他にどのような戦略が利用できるか疑問に思っていました。

編集: レポートとして必要なリレーショナル データベースと SQL データ抽出が必要です。

固定サイズの循環バッファー - まさに - フットプリントの小さい DB と高速な「循環」動作 (つまり、高速挿入) を使用して、リレーショナルの世界でこれを複製する必要があります。

4

1 に答える 1

1

1) 要件に合わせて格納できるデータの行数を決定します。

2) #1 に関連する整数である主キーを使用します。

3) 主キーの使用状況を追跡する方法を作成します。たとえば、主キーと使用状況のタイムスタンプを別のテーブルに保存します。

4) 挿入するときは、常に使用された最も古い主キーを取得し、その行を新しいデータで更新します。

適切に実装されている場合、これにより行数が #1 で指定した数に制限されます。

于 2015-09-03T14:12:00.980 に答える