MySQL ストアド プロシージャを使用して定期的なデータベース メンテナンスを自動化する方法
データベース メンテナンスは、システムの整合性とパフォーマンスを確保するために不可欠なタスクです。一般的なタスクの 1 つは、古くなったデータまたは古くなったデータを定期的に削除することです。これに関連して、MySQL ストアド プロシージャは、これらのメンテナンス操作をスケジュールするための強力なソリューションを提供します。
質問:
ストアド プロシージャを次のような特定の間隔で実行するようにスケジュールできますか?タイムスタンプ基準に基づいてデータを削除するには、5 秒ごとに実行しますか?
プロシージャ例:
次のストアド プロシージャ (delete_rows_links) は、タイムスタンプが 1 日より古い activity_link_password_reset テーブル:
<code class="sql">DROP PROCEDURE IF EXISTS `delete_rows_links` GO CREATE PROCEDURE delete_rows_links BEGIN DELETE activation_link FROM activation_link_password_reset WHERE TIMESTAMPDIFF(DAY, `time`, NOW()) < 1 ; END GO</code>
解決策:
このストアド プロシージャを 5 秒の頻度でスケジュールするには、次のようにします。 MySQLイベントスケジューラを利用します。コードは次のとおりです:
<code class="sql">CREATE EVENT myevent ON SCHEDULE EVERY 5 SECOND DO CALL delete_rows_links();</code>
このコードを実行すると、myevent という名前のイベントが作成されます。このイベントは、delete_rows_links ストアド プロシージャを 5 秒ごとにトリガーし、定義されたタイムスタンプ基準に基づいてデータ削除プロセスを効果的に自動化します。
以上がMySQL ストアド プロシージャは、時間ベースの基準を使用して定期的なデータベース メンテナンスを自動化できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。