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