MySQL 8.0 リファレンスマニュアル


27.12.14.2 パフォーマンススキーマ variables_info テーブル

variables_info テーブルには、システム変数ごとに、最後に設定されたソースとその値の範囲が表示されます。

variables_info テーブルには、次のカラムがあります:

  • VARIABLE_NAME

    変数名。

  • VARIABLE_SOURCE

    変数が最後に設定されたソース:

    • COMMAND_LINE

      コマンドラインで変数が設定されました。

    • COMPILED

      変数には、コンパイルされたデフォルト値があります。 COMPILED は、他の方法で設定されない変数に使用される値です。

    • DYNAMIC

      変数は実行時に設定されました。 これには、init_file システム変数を使用して指定されたファイル内に設定された変数が含まれます。

    • EXPLICIT

      変数は、--defaults-file オプションで指定されたオプションファイルから設定されました。

    • EXTRA

      変数は、--defaults-extra-file オプションで指定されたオプションファイルから設定されました。

    • GLOBAL

      変数がグローバルオプションファイルから設定されました。 これには、EXPLICIT, EXTRA, LOGIN, PERSISTED, SERVER または USER でカバーされないオプションファイルが含まれます。

    • LOGIN

      変数は、ユーザー固有のログインパスファイル (~/.mylogin.cnf) から設定されました。

    • PERSISTED

      変数がサーバー固有の mysqld-auto.cnf オプションファイルから設定されました。 persisted_globals_load を無効にしてサーバーを起動した場合、この値は行に含まれません。

    • SERVER

      変数がサーバー固有の $MYSQL_HOME/my.cnf オプションファイルから設定されました。 MYSQL_HOME の設定方法の詳細は、セクション4.2.2.2「オプションファイルの使用」 を参照してください。

    • USER

      変数がユーザー固有の ~/.my.cnf オプションファイルから設定されました。

  • VARIABLE_PATH

    変数がオプションファイルから設定された場合、VARIABLE_PATH はそのファイルのパス名です。 それ以外の場合、値は空の文字列です。

  • MIN_VALUE, MAX_VALUE

    変数に許可される最小値と最大値。 両方とも、そのような値を持たない変数 (つまり、数値ではない変数) の場合は 0 です。

  • SET_TIME

    変数が最後に設定された時刻。 デフォルトは、起動時にサーバーがグローバルシステム変数を初期化した時刻です。

  • SET_USER, SET_HOST

    変数を最後に設定したクライアントユーザーのユーザー名とホスト名。 クライアントが'user17'@'%.example.com アカウントを使用してホスト host34.example.com から user17 として接続する場合、SET_USER および SET_HOST はそれぞれ user17 および host34.example.com です。 プロキシユーザー接続の場合、これらの値は権限チェックが実行されるプロキシユーザーではなく、外部 (プロキシ) ユーザーに対応します。 各カラムのデフォルトは空の文字列で、サーバーの起動後に変数が設定されていないことを示します。

variables_info テーブルには次のインデックスがあります:

  • なし

TRUNCATE TABLE は、variables_info テーブルに対して許可されていません。

DYNAMIC 以外の VARIABLE_SOURCE 値を持つ変数が実行時に設定された場合、VARIABLE_SOURCEDYNAMIC になり、VARIABLE_PATH は空の文字列になります。

セッション値のみを持つシステム変数 (debug_sync など) は、起動時または永続化時に設定できません。 セッション専用システム変数の場合、VARIABLE_SOURCE には COMPILED または DYNAMIC のみを指定できます。

システム変数に予期しない VARIABLE_SOURCE 値が含まれている場合は、サーバーの起動方法を検討してください。 たとえば、mysqld_safe はオプションファイルを読み取り、mysqld の起動に使用するコマンドラインの一部として検出された特定のオプションを渡します。 したがって、オプションファイルに設定した一部のシステム変数は、予想されるとおりに GLOBAL または SERVER としてではなく、COMMAND_LINE として variables_info に表示される場合があります。

variables_info テーブルを使用するいくつかのサンプルクエリーでは、次のように出力されます:

  • コマンドラインで設定された変数を表示します:

    mysql> SELECT VARIABLE_NAME
           FROM performance_schema.variables_info
           WHERE VARIABLE_SOURCE = 'COMMAND_LINE'
           ORDER BY VARIABLE_NAME;
    +---------------+
    | VARIABLE_NAME |
    +---------------+
    | basedir       |
    | datadir       |
    | log_error     |
    | pid_file      |
    | plugin_dir    |
    | port          |
    +---------------+
  • 永続ストレージから設定された変数を表示します:

    mysql> SELECT VARIABLE_NAME
           FROM performance_schema.variables_info
           WHERE VARIABLE_SOURCE = 'PERSISTED'
           ORDER BY VARIABLE_NAME;
    +--------------------------+
    | VARIABLE_NAME            |
    +--------------------------+
    | event_scheduler          |
    | max_connections          |
    | validate_password.policy |
    +--------------------------+
  • variables_infoglobal_variables テーブルと結合して、永続変数の現在の値とその値の範囲を表示します:

    mysql> SELECT
             VI.VARIABLE_NAME, GV.VARIABLE_VALUE,
             VI.MIN_VALUE,VI.MAX_VALUE
           FROM performance_schema.variables_info AS VI
             INNER JOIN performance_schema.global_variables AS GV
             USING(VARIABLE_NAME)
           WHERE VI.VARIABLE_SOURCE = 'PERSISTED'
           ORDER BY VARIABLE_NAME;
    +--------------------------+----------------+-----------+-----------+
    | VARIABLE_NAME            | VARIABLE_VALUE | MIN_VALUE | MAX_VALUE |
    +--------------------------+----------------+-----------+-----------+
    | event_scheduler          | ON             | 0         | 0         |
    | max_connections          | 200            | 1         | 100000    |
    | validate_password.policy | STRONG         | 0         | 0         |
    +--------------------------+----------------+-----------+-----------+

関連キーワード:  テーブル, 変数, パフォーマンス, スキーマ, VARIABLE, 設定, variables, info, events, replication