以下の編集者がありふれた話をお届けしますmysqleventeventscheduler (必読). 編集者はそれだと思っていますとても良い内容なので、ここで共有して参考にしてみましょう
概要
MySQL には、簡単に理解できる独自のイベント スケジューラもあります。 linuxcrontab ジョブと同じですが、SQL アプリケーションの場合は、より機能が充実しており、保守が容易です。個人的には、あまりにも多く作成すると、DB のパフォーマンスに影響を及ぼし、デバッグMySQL が困難になる可能性があります。イベントスケジューラの内容
メインスイッチ
パラメータevent_schedulerは、一般的にはONまたはOFFに設定するのが良いですが、設定することはお勧めしません。 ONに設定すると、プロセスリストを表示します
作成、変更、表示などの構文が表示されます イベントの作成と変更方法については、ここでは説明がありません。作成構文は次のとおりです。具体的な意味については、次のイベント情報テーブルの概要を参照してください。また、公式 Web サイトのドキュメント リンク (http://dev.mysql.com/doc/refman/5.6/) も参照できます。 en/create-event.html
イベント情報のクエリと意味
イベントのステータス情報は、mysql.event または information_schema.events を表示するか、単に現在の DB に切り替えて show events を実行できます。 Information_schema は、次の名前とデータをコピーできません。 information_schema.events の情報は例としてここで説明されています
EVENT_SCHEMA:
event のスキーマ
EVENT_NAME : イベントの名前
DEFINER: イベントの定義者と定義 このイベントの間、デフォルトの selectcurrent_user() の結果は一貫しています。ユーザーが super 権限を持っている場合、別のユーザー
として指定できます。 TIME_ZONE: イベントで使用されるタイムゾーン、デフォルトはシステムです、変更しないことをお勧めします
EVENT_BODY: 通常はSQLです、心配する必要はありません
EVENT_DEFINITION: イベントの内容は、挿入などの特定の SQL である場合もあれば、ストアド プロシージャ
EVENT_TYPE:this を呼び出す操作である場合もあります。パラメータは定義時に指定されます。 RECURRING と ONE TIME の 2 つの値です。RECURRING は条件が満たされる限り繰り返し実行されることを意味し、ONE TIME は 1 回だけ呼び出されます
EXECUTE_AT: 1 回限りのイベントは有効です。 RECURRING タイプのイベントの場合、通常は
で、イベントの推定実行時間を示します。 は、RECURRING タイプのイベントの場合に有効で、実行間隔の長さを示します。 INTERVAL_FIELD: RECURRING タイプのイベントの場合は有効で、実行間隔の単位 (通常は SECOND、DAY およびその他の値) を表します。作成構文を参照してください。
SQL_MODE: 現在のイベントで使用される SQL_MODE
。STARTS: RECURRING タイプ Valid のイベントの場合、1 回限りの EXECUTE_AT 関数と同様に、イベントの実行が開始される時点を示します。 NULL の場合、条件が満たされ次第実行が開始されることを意味します ENDS: RECURRING タイプのイベントに有効で、それ以降イベントが実行されなくなる時点を示します。 STATUS: には通常、ENABLED の 3 つの値があります。 、DISABLED および SLAVESIDE_DISABLED。ENABLED はイベントをアクティブにすることを意味し、他の条件を満たす限り実行されます。DISABLED ステータスが変更されるとイベントは実行されません。SLAVESIDE_DISABLED はスレーブ ライブラリでイベントが実行されないことを意味します。 。スレーブ ライブラリではいかなる形式のイベントも実行しないように特別な注意を払う必要があります。メイン ライブラリがイベントを一度実行し、スレーブ ライブラリにコピーし、その後スレーブ ライブラリから再度実行すると、一般にデータが不整合になるためです。つまり、スレーブ ライブラリのイベントを無効にするだけです。メイン スイッチのevent_schedulerをオンにするだけです。 ON_COMPLETION: PRESERVE と NOT PRESERVE の 2 つの値のみがあります。 PRESERVE CREATED: イベントの作成時刻 LAST_ALTERED: イベントが最後に変更された時刻 LAST_EXECUTED: イベントが最後に実行された時刻、NULLの場合、未実行からであることを意味します EVENT_COMMENT: イベントのコメント情報 ORIGINATOR: 現在のイベントが作成されたときのserver-id、SLAVESIDE_DISABLEDなどのマスター/スレーブ処理に使用されます CHARACTER_SET_CLIENT: client イベント作成時の文字セット つまり、Character_Set_Client Collation_Connection: イベント作成時の接続文字検証ルール、つまり、データベースのデータベースのデータベースの文字セットのデータベースのデータベースのデータベースの文字セットデータベースのデータベースのデータベースのデータベースのデータベースのデータベースのデータベースのevent_scheduler にはsuper_priv権限が必要です 2 イベントの作成、変更、削除には、ユーザーのEVENT権限が必要です。スキーマ レベル 3 イベントの特定の内容に応じて、対応する権限が必要です。たとえば、イベント内の特定のテーブルに挿入操作がある場合、ユーザーはそのテーブルに対して挿入操作を実行する必要があります。そうでない場合、LAST_EXECUTEDは常にNULLになります を使用します開始以降の DB を表示するには、次のコマンドを使用します。 関連情報 イベントの統計 使用方法の提案1 メイン ライブラリが実行されている場合、スレーブ ライブラリは、イベントが実行されないことを保証する必要があります (イベントはスレーブ上で意図的に作成されます) 2 mysql.event テーブルを直接操作することは固く禁止されており、代わりに create などの正式な構文を使用して実装されます。そうしないと、メタデータが混乱し、さまざまな説明がつかなくなります。イベントが実行されない、繰り返し実行されるなどの問題が発生します。このとき、通常はDBを再起動するだけで問題は解決します。 3 作成されたイベントに大規模なデータ変更が含まれる場合は、既存のネットワーク サービスに影響を与えないことを確認するために十分なテストを行う必要があります 4 イベントを含む DB をバックアップする必要がある場合は、-- を追加する必要がありますmysqldump 時のイベントパラメータ mysql> showglobal status like '%event%';
+--------------------------+-------+
|Variable_name | Value |
+--------------------------+-------+
|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 rows in set(0.00 sec)
以上がmysqlイベントイベントスケジューラのグラフィックコードの詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。