0

PostgreSQL では、トランザクション ID のラップアラウンドによる非常に古いデータのデータ損失を防ぐために、定期的にバキュームする必要があります。定期的にバキューム処理を行わないと、SQLite3 データベースでもデータ損失が問題になるのではないかと懸念しています。

さらに、SQLite3 データベースが経験するワークロードは重要ですか? 現在、次のようないくつかのシナリオで SQLite3 を使用することを考えています。

  • 人々がファイルを共有し、異なるマシン間でそれらを使用する可能性のあるプログラムのファイル形式として
  • アプリケーション設定を保存する
  • 1 秒間に複数回ログを記録するアプリケーションのログを保存するため (最近のデータに対するクエリは 1 時間ごとに実行される場合があります)

また、更新と削除の頻度は重要ですか?

4

1 に答える 1

1

真空

  • 断片化が解消されるため、大量の削除と挿入があり、テーブル全体をスキャンする多くの読み取り専用クエリがある場合に役立ちます。
  • 未使用のページを解放するため、大量のデータを削除し、その後の挿入がほとんどない場合に役立ちます。

しかし、これらは単なる最適化です。断片化は通常、回転するディスク上でのみ問題になり、スペースが不足しない限り、スペースを解放する必要はありません。

SQLite は別のトランザクション ロック メカニズム (はるかにシンプルで高速ですが、スケーラブルではありません) を使用し、メンテナンスを必要としません。

于 2016-01-21T14:36:13.977 に答える