1|0 背景 プロジェクトの要件により、各月の履歴在庫データをアーカイブしてバックアップする必要があり、MySQL データベース ディスクのスペースを節約するために、一部のログ テーブルの詳細フィールドをクリアする必要があります。このデータを定期的にクリーンアップするには、いくつかのスケジュールされたタスクが必要です。 2|0 技術選択
3|0 特定の操作 3|1mysql 設定 MySQL のデフォルト設定ではスケジュールされたタスク オプションはオフになっているため、念のため、まずはオプションがオンになっているかどうかを確認しましょう。 '%event_scheduler%' のような変数を表示します。 [オフ] オプションが表示されている場合は、次の 2 つの方法で変更できます。 1. ステートメント方式(現在起動中のインスタンスでは有効、再起動後は無効) グローバルevent_schedulerを1に設定します。 2. my.cnf(Windowsではmy.ini)を設定し、次のオプションを追加します。 [mysqld] イベントスケジューラ=オン 保存してmysqlを再起動します 3|2SQLライティング ストアド プロシージャ (プロシージャ) を作成します [オプション: 単純な SQL の場合は、スケジュールされたタスクで直接指定できます]
PROCEDURE sched_clean() を作成します --name BEGIN -- パラメータを定義します。DECLARE begin_time BIGINT DEFAULT UNIX_TIMESTAMP(DATE_SUB(CURRENT_DATE(),interval 31 DAY))*1000; end_time を BIGINT DEFAULT UNIX_TIMESTAMP(DATE_SUB(CURRENT_DATE(),interval 30 DAY))*1000 として宣言します。 -- データを更新します UPDATE test_table SET rule_cost=null WHERE start_time>begin_time and start_time<end_time; 終わり スケジュールされたタスクを作成する ストアド プロシージャが作成されると、定期的に呼び出すことができます。 イベント `demo`.`day_of_clean_event` を作成します スケジュールに従って '1' 日ごとに開始 DATE_ADD(DATE_ADD(CURDATE(), INTERVAL 1 DAY), INTERVAL 1 HOUR) ON完了保存無効 sched_clean() を呼び出します。 コードの説明:
関連クエリ このマシンのすべてのイベントを照会する information_schema.EVENTS から、event_name、event_definition、interval_value、interval_field、status を選択します。 すでに作成されたイベントを有効/無効にする alter event event_name on completion preserve enable; //スケジュールされたタスクを開く alter event event_name on completion preserve disabled; //スケジュールされたタスクを閉じる 4|0 注目すべき点 グローバル パラメータがスケジュールされたタスクを開始するように構成されていない場合、作成されたイベントを開始しても、information_schema.EVENTS テーブルでレコードを見つけることができません。 4|1 一般的なサイクルタイミングルール ① サイクル実行 – キーワードEVERY 単位は、秒、分、時間、日、週、四半期、月、年などです。 スケジュールに従って 1 秒ごとに // 1 秒ごとに 1 回実行 スケジュールに従って 2 分ごとに // 2 分ごとに 1 回実行 スケジュールに従って 3 日ごとに // 3 日に 1 回実行 ② 特定の時間に実行する – キーワード AT、例: スケジュールどおり、current_timestamp()+interval 5 day // 5日後に実行 スケジュールどおり、current_timestamp()+interval 10 minute // 10分後に実行 スケジュールどおり、'2016-10-01 21:50:00' // 2016年10月1日午後9時50分に実行 ③ 特定の期間に実行する – 次のようなキーワードSTARTS ENDS: スケジュールに従って 1 日ごとに開始 current_timestamp()+interval 5 日 終了 current_timestamp()+interval 1 か月 //5 日後に毎日実行を開始し、翌月末に終了します スケジュールに従って 1 日ごとに終了 current_timestamp()+interval 5 日 //5 日間毎日実行を開始します 要約する 以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。 以下もご興味があるかもしれません:
|
<<: オブジェクト指向の観点から Vue コンポーネントを理解するための簡単な分析
>>: ElasticSearch と ElasticSearch-Head の Docker デプロイメントの実装
目次1. はじめに2. インストール01. 新しい仮想マシンを作成する02. システムをインストール...
1. まず、次のパスに従って対応するフォルダを作成します。 ローカルのdockerでmysqlを実行...
この記事では、VMware Workstation Pro で Win10 オペレーティング システ...
目次序文JSON.stringify の 6 つの機能特集1特集2特集3特集4特集5特集6手動で文字...
この記事の例では、vue3 が独自のページングコンポーネントをカプセル化する具体的なコードを参考まで...
サーバーデータがSSL証明書を使用して暗号化および認証されていない場合、ユーザーのデータはプレーンテ...
Google Chrome では、ログインに成功すると、パスワードを記憶するかどうかを尋ねるメッセー...
MySQL の外部キー制約は、2 つのテーブル間のリンクを確立するために使用されます。 1 つのテー...
この記事では、例を使用して、MySQL ストアド プロシージャでの if ステートメントの使用方法を...
目次1. 環境変数$PATH: 2. 環境変数を変更します。 3. bash_profileの目的要...
序文最近、オンラインでデータが誤って操作されました。データベースが直接変更されたため、それを回復する...
今日はあまり使わないHTMLタグ「subタグ」と「supタグ」を紹介します。関連記事: HTML タ...
これは多くの人がやったことがあるはずです。ただうずうずして書きたかったので、時間をかけていじってダー...
目次1. クラス1.1 コンストラクタ() 1.2 ゲッターとセッター1.3 これ1.4 静的プロパ...
暫定的な応答を示し、要求者に操作の続行を要求するステータス コード。コードの説明100 (続行) リ...