ローリングトランケーションによる古い MySQL 行の効率的な削除
多くのアプリケーションでは、指定された期間より古い行を定期的に削除する必要があります。トラフィックの多いテーブルを処理する場合、効率的な方法を見つけることが重要です。
現在のアプローチ
以前は、cron ジョブを実行することにより、テーブルが 1 つの大きなバッチで切り詰められていました。毎時。これにより、アプリケーションのハングは防止されましたが、書き込みトラフィックが多いときのスケーラビリティの制限が生じました。
代替: スケジュールされたイベント
現在の方法の代替方法は、MySQL のイベントを利用することです。特徴。イベントを使用すると、スケジュールに基づいてデータベース タスクを自動実行できます。
ローリング トランケーションのイベントの例
次に、「 tableName 」テーブル内の行を削除するサンプル イベントを示します。 30 日より古いもの:
SET @@GLOBAL.event_scheduler = ON; CREATE EVENT AutoDeleteOldNotifications ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 DAY ON COMPLETION PRESERVE DO DELETE LOW_PRIORITY FROM databaseName.tableName WHERE datetime < DATE_SUB(NOW(), INTERVAL 30 DAY);
イベントを使用する利点
イベントにはいくつかの利点があります:
以上がMySQL イベントは古い行を削除する効率とスケーラビリティをどのように向上させることができますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。