文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


29.12.14.2 Performance Schema 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

      變數是從全域選項檔案中設定的。這包括 EXPLICITEXTRALOGINPERSISTEDSERVERUSER 未涵蓋的選項檔案。

    • LOGIN

      變數是從使用者特定的登入路徑檔案 (~/.mylogin.cnf) 中設定的。

    • PERSISTED

      變數是從伺服器特定的 mysqld-auto.cnf 選項檔案中設定的。如果伺服器啟動時停用了 persisted_globals_load,則沒有任何資料列具有此值。

    • SERVER

      此變數是從伺服器專用的 $MYSQL_HOME/my.cnf 選項檔案設定的。關於如何設定 MYSQL_HOME 的詳細資訊,請參閱 第 6.2.2.2 節,「使用選項檔案」

    • USER

      此變數是從使用者專用的 ~/.my.cnf 選項檔案設定的。

  • VARIABLE_PATH

    如果變數是從選項檔案設定的,VARIABLE_PATH 是該檔案的路徑名稱。否則,此值為空字串。

  • MIN_VALUE

    此變數允許的最小值。對於類型不是數值的變數,此值永遠為 0。

  • MAX_VALUE

    此變數允許的最大值。對於類型不是數值的變數,此值永遠為 0。

  • SET_TIME

    此變數最近一次設定的時間。預設值是伺服器在啟動期間初始化全域系統變數的時間。

  • SET_USERSET_HOST

    最近一次設定此變數的客戶端使用者的使用者名稱和主機名稱。如果客戶端以 user17 身分從主機 host34.example.com 連線,並使用帳戶 'user17'@'%.example.com,則 SET_USERSET_HOST 分別為 user17host34.example.com。對於代理使用者連線,這些值對應於外部(代理)使用者,而不是執行權限檢查的被代理使用者。每個資料行的預設值為空字串,表示此變數自伺服器啟動以來尚未設定。

variables_info 表格沒有索引。

不允許對 variables_info 表格使用 TRUNCATE TABLE

如果在執行階段設定了 VARIABLE_SOURCE 值不是 DYNAMIC 的變數,則 VARIABLE_SOURCE 會變成 DYNAMIC,而 VARIABLE_PATH 會變成空字串。

只有工作階段值的系統變數(例如 debug_sync)無法在啟動時設定或持續保留。對於僅限工作階段的系統變數,VARIABLE_SOURCE 只能是 COMPILEDDYNAMIC

如果系統變數具有非預期的 VARIABLE_SOURCE 值,請考慮您的伺服器啟動方法。例如,mysqld_safe 會讀取選項檔案,並將它在那裡找到的某些選項作為它用來啟動 mysqld 的命令列的一部分傳遞。因此,您在選項檔案中設定的某些系統變數可能會在 variables_info 中顯示為 COMMAND_LINE,而不是您可能預期的 GLOBALSERVER

以下是一些使用 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         |
    +--------------------------+----------------+-----------+-----------+