MySQL データベース用にいくつかのテーブルを作成しています。これらのテーブルには、数週間しか必要としないエントリがあります。
例えば:
create table LoginAttempts (
ReferenceId int unsigned auto_increment not null,
UserId smallint unsigned not null,
EventTime timestamp not null...)
ユーザーのログイン試行の記録を永遠に保持する必要がなくなったので、たとえば 30 日後にそれらを削除する予定です。明らかに、この操作が自動的に行われる必要があります。私の最初の考えは、テーブルにエントリが作成されるたびに実行されるトリガーをこのテーブルに追加することでした。基本的に、各行のタイムスタンプを現在のタイムスタンプと単純に比較します。30 日以上経過している場合、その行は削除されます。
ただし、私の懸念は、パフォーマンスへの影響の可能性です。この方法は、少なくとも私には非効率的です。もっと良い方法があるはずです。では、やりたいことをより良い方法で実装するにはどうすればよいでしょうか?