4

約 3500 万行のテーブルがあります。それぞれに約 35 の整数値と 1 つの時刻値 (最終更新) があります テーブルには 2 つのインデックスがあります プライマリ - テーブル列から 2 つの整数値を使用します セカンダリ - プライマリからの最初の整数 + 別の整数値を使用します。

日付フィールドに従って、古いレコード (約 2000 万件) を削除したいと考えています。

最速の方法は何ですか: 1. 日付フィールドに従ってそのまま削除しますか? 2. 日付ごとに別のインデックスを作成し、日付ごとに削除します。

データの大部分が 1 回削除され、その後、より小さな部分が毎週段階的に削除されます。

より効率的に行う別の方法はありますか?

4

3 に答える 3

8

保持したい行を含む新しいテーブルを作成し、古いテーブルを削除してから、新しいテーブルの名前を変更する方が速い場合があります

于 2010-08-08T08:53:43.330 に答える
3

毎週の削除の場合、日付フィールドのインデックスは処理を高速化します。

于 2010-08-08T09:18:52.957 に答える