このページは機械翻訳したものです。
MySQL は、サーバーが SQL ステートメントを実行する前に、サーバーが受け取った SQL ステートメントを調査して変更できるクエリーリライトプログインをサポートしています。 Query Rewrite Pluginsを参照してください。
MySQL ディストリビューションには、Rewriter という名前の解析後クエリーリライトプラグインと、プラグインおよびその関連要素をインストールするためのスクリプトが含まれています。 これらの要素は連携して、ステートメントのリライト機能を提供します:
Rewriterという名前のサーバー側プラグインはステートメントを検査し、リライト規則のメモリー内キャッシュに基づいてステートメントを書き換えることができます。-
次のステートメントはリライトの対象となります:
MySQL 8.0.12 の時点:
SELECT,INSERT,REPLACE,UPDATEおよびDELETE。MySQL 8.0.12 より前:
SELECTonly.
スタンドアロンステートメントおよびプリペアドステートメントはリライトの対象となります。 ビュー定義またはストアドプログラム内で発生するステートメントは、書き換えの対象にはなりません。
Rewriterプラグインは、rewrite_rulesという名前のテーブルを含むquery_rewriteという名前のデータベースを使用します。 このテーブルは、ステートメントを書き換えるかどうかを決定するためにプラグインが使用するルールの永続ストレージを提供します。 ユーザーは、このテーブルに格納されているルールのセットを変更することによって、プラグインと通信します。 プラグインは、テーブル行のmessageカラムを設定することによってユーザーと通信します。query_rewriteデータベースには、ルールテーブルの内容をプラグインにロードするflush_rewrite_rules()というストアドプロシージャが含まれています。flush_rewrite_rules()ストアドプロシージャでは、load_rewrite_rules()という名前のユーザー定義関数が使用されます。Rewriterプラグインは、実行時の操作情報を提供するプラグイン構成およびステータス変数を有効にするシステム変数を公開します。
次の各セクションでは、Rewriter プラグインのインストールおよび使用方法について説明し、関連する要素のリファレンス情報を提供します。