DELETE
の場合 そのテーブルの行の大部分を削除することを目的としています。よくあることの1つは、保持したい行だけを複製テーブルにコピーしてから、DROP TABLE
を使用することです。 またはTRUNCATE
元のテーブルをより迅速に消去します。
インデックスは、削除する必要のある行を見つけるのに役立つ場合がありますが、削除するにはインデックスを更新する必要があります。多くの行を削除した後、インデックスのバランスが崩れる可能性があり、OPTIMIZE TABLE
を使用したメンテナンスが必要になります。 。
DATE_SUB()
関数は定数式であるため(行ごとに変化しません)、クエリオプティマイザーは、関数を除外して計算を1回実行するのに十分な機能を備えている必要があります。
主キー用に追加のインデックスを作成する必要はありません。主キー制約は、非主キーインデックスと同じ利点を提供するインデックスを暗黙的に作成します。
検索条件がインデックスの左端の列を参照している場合、複合インデックスはおそらく単一列インデックスと同じくらい便利です。 「おそらく」警告は、個々のインデックスノードが大きいため、インデックスをキャッシュするためにより多くのメモリが必要になるためですが、これは、他の単一列インデックス全体を作成できないほど小さい要素です。