概要 MySQL には独自のイベント スケジューラもあり、これは Linux の crontab ジョブとして簡単に理解できます。ただし、SQL アプリケーションの場合は、より完全な機能があり、メンテナンスが容易です。個人的には、あまり多く作成すると DB のパフォーマンスに影響したり、デバッグが困難になる可能性があると感じています。 MySQLイベントスケジューラの主な内容 メインスイッチ パラメータevent_schedulerはイベントスケジューラのマスタースイッチです。一般的には、ONまたはOFFに設定できます。無効に設定することはお勧めしません。ONに設定すると、show processlistでスレッドを確認できます。 作成、変更、表示などの構文 イベントの作成方法と変更方法についてはここでは説明しません。作成構文は次のとおりです。具体的な意味については、次のイベント情報テーブルの紹介を参照してください。公式ウェブサイトのドキュメントリンク http://dev.mysql.com/doc/refman/5.6/en/create-event.html も参照できます。 作成されたイベントを表示するには、現在のデータベースにアクセスした後、show create event xxx\G を使用します。
イベントのステータス情報を表示するには、mysql.event または information_schema.events を表示するか、現在の DB に切り替えて show events を実行します。3 つの内容は基本的に同じです。information_schema はデータのコピーを作成できません。次の名前と開始時刻は、読みやすくするために変更されています。ここでは、information_schema.eventsの情報を例に挙げて説明します。 EVENT_CATALOG:一般的には、 EVENT_SCHEMA:イベントが配置されているスキーマ EVENT_NAME:イベントの名前 DEFINER:イベントの定義者。これは、イベントを定義するときの selectcurrent_user() のデフォルトの結果と一致します。ユーザーにスーパー権限がある場合は、別のユーザーを指定できます。 TIME_ZONE:イベントで使用されるタイムゾーン。デフォルトはシステムです。変更しないことをお勧めします。 EVENT_BODY:通常はSQLなので気にしないでください EVENT_DEFINITION:イベントの内容は、挿入などの特定のSQL、またはストアドプロシージャを呼び出す操作です。 EVENT_TYPE:このパラメータは非常に重要で、定義時に指定します。RECURRING と ONE TIME の 2 つの値があります。RECURRING は、条件が満たされる限りイベントが繰り返し実行されることを意味し、ONE TIME は 1 回だけ呼び出されます。 EXECUTE_AT: 1 回限りのイベントに有効です。RECURRING イベントの場合は、通常 NULL となり、イベントの推定実行時間を示します。 INTERVAL_VALUE: RECURRING タイプのイベントに有効で、実行間隔の長さを示します。 INTERVAL_FIELD: RECURRINGタイプのイベントに有効で、実行間隔の単位(通常はSECOND、DAYなど)を示します。詳細については、作成構文を参照してください。 SQL_MODE:現在のイベントで使用されるSQL_MODE STARTS: RECURRING タイプのイベントに有効で、1 回限りの EXECUTE_AT 関数と同様に、イベントの実行が開始される時点を示します。 NULL は条件が満たされるとすぐに実行が開始されることを意味します。 ENDS: RECURRING タイプのイベントに有効で、イベントの実行が停止する時点を示します。NULL の場合、イベントは停止しません。 STATUS:一般的に、ENABLED、DISABLED、SLAVESIDE_DISABLED の 3 つの値があります。ENABLED はイベントをアクティブにすることを意味します。他の条件が満たされている限り、イベントは実行されます。DISABLED 状態は、イベントが実行されないことを意味します。SLAVESIDE_DISABLED は、スレーブ ライブラリでイベントが実行されないことを意味します。マスター データベースがイベントを一度実行し、それをスレーブ データベースにコピーしてから、スレーブ データベースで再度実行すると、データの一貫性が失われるため、スレーブ データベースでいかなる形式のイベントも実行しないように特に注意する必要があります。一般的には、スレーブ データベースでメイン スイッチ event_scheduler を無効にするだけで済みます。 ON_COMPLETION: 値はPRESERVEとNOT PRESERVEの2つだけです。PRESERVE 作成日時: イベントが作成された日時 LAST_ALTERED: イベントが最後に変更された時刻 LAST_EXECUTED: イベントが最後に実行された時刻。NULL の場合は、イベントが一度も実行されていないことを意味します。 EVENT_COMMENT: イベントコメント情報 ORIGINATOR: 現在のイベントが作成された際のサーバーID。マスターとスレーブでの処理に使用されます(SLAVESIDE_DISABLEDなど)。 CHARACTER_SET_CLIENT: イベントが作成されたときのクライアント文字セット、つまりcharacter_set_client COLLATION_CONNECTION: イベント作成時の接続文字検証ルール、つまりcollation_connection DATABASE_COLLATION: イベント作成時のデータベース文字セット検証ルール イベント権限管理 1 event_schedulerシステム変数を設定するにはsuper_priv権限が必要です 2 イベントの作成、変更、削除には、スキーマ レベルのユーザーの EVENT 権限が必要です。 3 イベントの具体的な内容に応じて、対応する権限が必要となります。たとえば、イベント内のテーブルに挿入操作がある場合、ユーザーはテーブルを挿入する必要があります。そうでない場合、LAST_EXECUTED は常に NULL になります。 イベントステータスクエリ DBが起動してからのイベント関連の統計を表示するには、次のコマンドを使用します。 mysql> '%event%' のようなグローバルステータスを表示します。 +--------------------------+-------+ |変数名 | 値 | +--------------------------+-------+ |Com_alter_event | 0 | |Com_create_event | 2 | |Com_drop_event | 2 | |Com_show_binlog_events | 0 | |Com_show_create_event | 191 | |Com_show_events | 40 | |Com_show_relaylog_events | 0 | +--------------------------+-------+ セット内の行数は 7 です (0.00 秒) 使用方法の提案 1 マスターがすでにイベントを実行した場合、スレーブはイベントが実行されないようにする必要があります(スレーブ上でイベントが意図的に作成されない限り) 2. mysql.event テーブルを直接操作して作成、削除などの操作を行うことは固く禁じられています。代わりに、create などの通常の構文を通じて実装する必要があります。そうしないと、メタデータの混乱が発生し、イベントが実行されなかったり、繰り返し実行されたりするなど、さまざまな説明のつかない問題が発生します。現時点では、唯一の解決策は DB を再起動することです。 3 作成するイベントに大量のデータ変更が含まれる場合は、既存のネットワーク サービスに影響を与えないことを確認するために十分なテストを実施する必要があります。 4 イベントを含む DB をバックアップする必要がある場合は、mysqldump を実行するときに --event パラメータを追加する必要があります。 私が皆さんにお伝えしたいのは、上記の記事「MySQL イベント スケジューラ (必読)」だけです。これが皆さんの参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
>>: Dockerでmongodbデータベースを使用するための実装コード
背景グループでは、CSS を使用してインセット コーナー ボタンを実装する方法や、矢印付きのボタンを...
テーマ今日は、CSS3 を使用して円形スクロール プログレス バー アニメーションを作成する方法を説...
1. CSSは左の固定幅と右の適応幅を実現します1. ポジショニング <!DOCTYPE ht...
目次ロックの概要ロックの分類データベース操作の粒度データ操作の種類MySQL ロックさまざまなストレ...
目次react-beautiful-dndを選ぶ理由基本的な使い方基本概念使い方使用中に発生した問題...
過去 N 秒間の QPS 値の統計 (1 秒あたりの選択、挿入などを含む) mysql> se...
1. スタイルオブジェクトスタイル オブジェクトは単一のスタイル宣言を表し、スタイルが適用されている...
効果を直接確認するために、リロード、左を閉じる、右を閉じる、その他の機能を閉じるなどの右クリック メ...
ELKとは何ですか? ELK は、Elastic が提供するログ収集およびフロントエンド表示ソリュー...
私たちは視覚の世界に住んでおり、多くの視覚効果に囲まれています。コンピューターの前にいても、屋外にい...
エフェクト表示組み込みのブートインターフェースがあまりにも醜いので、テーマをダウンロードして美しくし...
ご存知のとおり、binlog ログは MySQL データベースにとって非常に重要です。万が一、データ...
目次最適化の第一歩: 軽量ベースイメージの使用第2段階の最適化:多段階構築Docker は、ソフトウ...
2048ミニゲーム、参考までに具体的な内容は以下のとおりですまず、2048ゲームは16のグリッドか...
フロントエンドテストページコード: <テンプレート> <div> <i...