古くなった MySQL データの削除の最適化
MySQL テーブルから一定の期間を超えた行を削除することは、特に一時的なデータを含むテーブルの場合に一般的なタスクです。通知やハイスコアなどのデータ。このような削除を効率的に実行することは、トラフィックの多いテーブルでパフォーマンスのボトルネックを回避するために非常に重要です。
一般的なアプローチは、定期的 (例: 1 時間ごと) に実行され、しきい値に基づいて行を削除する cron ジョブを使用することです。この方法は効果的ではありますが、同時挿入と削除によりトラフィックが多い場合に遅延が発生する可能性があります。
より効率的な解決策は、MySQL のイベント システムを利用することです。イベントを作成すると、データベース間隔 (毎日など) で自動的に実行されるタスクをスケジュールできます。これにより、進行中のデータベース操作を妨げることなく、古い行を定期的に削除できます。
たとえば、「notifications」というテーブルから 30 日より古い通知を削除するには、次のイベント クエリを検討してください:
CREATE EVENT AutoDeleteOldNotifications ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 DAY ON COMPLETION PRESERVE DO DELETE LOW_PRIORITY FROM databaseName.notifications WHERE datetime < DATE_SUB(NOW(), INTERVAL 30 DAY);
イベントを設定すると、24 時間ごとに実行され、クリーンアップ タスクが実行されます。このアプローチにより、パフォーマンスへの影響が最小限に抑えられ、タイムリーなデータのパージが保証され、データベース全体の効率が向上します。
以上がMySQL テーブルから古いデータを効率的に削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。