5

約 75 GB の sqlite データベースがあります。データベースにインデックスを作成するには、約 4 時間かかります。インデックス作成後のファイル サイズは約 100 GB です。

多くの場合、大きなチャンク (数 GB) のデータを変更 (挿入/削除/更新) する必要があります。現在、テーブルを変更する前にインデックスを削除しています。変更が完了すると、インデックスが再作成されます。

インデックスの削除には膨大な時間がかかります (インデックスの作成と同じ順序です)。

いくつかの非常に特殊なケース (データ全体を再生成する必要がある場合) では、新しいデータベース ファイルに書き込み、それを元のファイルに置き換えることができます。この戦略では、インデックスを削除する必要はありません。

データベース ファイルを切り替えることができない場合、インデックスの削除を高速化するにはどうすればよいですか? 提案/アイデアは大歓迎です。

これは、単一ファイル データベースの制限の 1 つだと思います。テーブル/インデックスが別のファイルに保存されている場合、それらのファイルは単に削除済みとしてマークされる可能性があります。

4

0 に答える 0