文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


29.12.14.3 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。

    此欄位在 MySQL 9.0 中已棄用,並可能在未來的版本中移除;請改用 variables_metadata 表格的 MIN_VALUE 欄位來取得此資訊。

  • MAX_VALUE

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

    此欄位在 MySQL 9.0 中已棄用,並可能在未來的版本中移除;請改用 variables_metadata 表格的 MAX_VALUE 欄位來取得此資訊。

  • SET_TIME

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

  • SET_USER, SET_HOST

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

variables_info 表格沒有索引。

TRUNCATE TABLE 不允許用於 variables_info 表格。

如果 VARIABLE_SOURCE 值不是 DYNAMIC 的變數在執行階段被設定,則 VARIABLE_SOURCE 會變成 DYNAMICVARIABLE_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         |
    +--------------------------+----------------+-----------+-----------+