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


MySQL 8.4 參考手冊  /  ...  /  INFORMATION_SCHEMA STATISTICS 表格

28.3.34 INFORMATION_SCHEMA STATISTICS 表格

STATISTICS 表格提供有關表格索引的資訊。

STATISTICS 中代表表格統計資訊的欄位會保存快取值。information_schema_stats_expiry 系統變數定義快取表格統計資訊過期前的時間長度。預設值為 86400 秒(24 小時)。如果沒有快取的統計資訊或統計資訊已過期,則在查詢表格統計資訊欄位時,會從儲存引擎擷取統計資訊。若要隨時更新指定表格的快取值,請使用 ANALYZE TABLE。若要始終直接從儲存引擎擷取最新統計資訊,請設定 information_schema_stats_expiry=0。如需詳細資訊,請參閱第 10.2.3 節,〈最佳化 INFORMATION_SCHEMA 查詢〉

注意

如果啟用 innodb_read_only 系統變數,則 ANALYZE TABLE 可能會失敗,因為它無法更新使用 InnoDB 的資料字典中的統計資料表。對於更新索引鍵分佈的 ANALYZE TABLE 作業,即使作業更新表格本身 (例如,如果是 MyISAM 表格),也可能發生失敗。若要取得更新的分佈統計資訊,請設定 information_schema_stats_expiry=0

STATISTICS 表格具有下列欄位

  • TABLE_CATALOG

    包含索引的表格所屬的目錄名稱。此值永遠為 def

  • TABLE_SCHEMA

    包含索引的表格所屬的綱要 (資料庫) 名稱。

  • TABLE_NAME

    包含索引的表格名稱。

  • NON_UNIQUE

    如果索引不能包含重複項目,則為 0,如果可以,則為 1。

  • INDEX_SCHEMA

    索引所屬的綱要 (資料庫) 名稱。

  • INDEX_NAME

    索引的名稱。如果索引是主索引鍵,則名稱永遠為 PRIMARY

  • SEQ_IN_INDEX

    索引中的欄位序號,從 1 開始。

  • COLUMN_NAME

    欄位名稱。另請參閱 EXPRESSION 欄位的說明。

  • COLLATION

    索引中欄位的排序方式。其值可以是 A (遞增)、D (遞減) 或 NULL (未排序)。

  • CARDINALITY

    索引中唯一值的估計數量。若要更新此數字,請執行 ANALYZE TABLE 或 (針對 MyISAM 資料表) myisamchk -a

    CARDINALITY 是根據儲存為整數的統計資料計算,因此即使對於小型資料表,該值也不一定精確。基數越高,MySQL 在執行聯結時使用索引的可能性就越大。

  • SUB_PART

    索引前綴。也就是說,如果欄位僅部分索引,則為索引的字元數,如果整個欄位都已索引,則為 NULL

    注意

    前綴限制以位元組為單位衡量。但是,CREATE TABLEALTER TABLECREATE INDEX 陳述式中索引規格的前綴長度,對於非二進位字串類型(CHARVARCHARTEXT)會解讀為字元數,對於二進位字串類型(BINARYVARBINARYBLOB)則解讀為位元組數。在為使用多位元組字元集的非二進位字串欄位指定前綴長度時,請考慮這一點。

    有關索引前綴的更多資訊,請參閱第 10.3.5 節「欄位索引」第 15.1.15 節「CREATE INDEX 陳述式」

  • PACKED

    指出金鑰的壓縮方式。如果未壓縮,則為 NULL

  • NULLABLE

    如果欄位可能包含 NULL 值,則包含 YES,如果不是,則包含 ''

  • INDEX_TYPE

    使用的索引方法(BTREEFULLTEXTHASHRTREE)。

  • COMMENT

    未在其自己的欄位中描述的索引相關資訊,例如如果索引已停用,則為 disabled

  • INDEX_COMMENT

    在建立索引時使用 COMMENT 屬性為索引提供的任何註解。

  • IS_VISIBLE

    索引對最佳化工具是否可見。請參閱第 10.3.12 節「隱藏索引」

  • EXPRESSION

    MySQL 支援函數式金鑰部分(請參閱函數式金鑰部分),這會影響 COLUMN_NAMEEXPRESSION 欄位

    • 對於非函數式金鑰部分,COLUMN_NAME 指示由金鑰部分索引的欄位,而 EXPRESSIONNULL

    • 對於函數式金鑰部分,COLUMN_NAME 欄位為 NULL,而 EXPRESSION 指示金鑰部分的運算式。

注意事項

  • 沒有索引的標準 INFORMATION_SCHEMA 資料表。MySQL 欄位清單與 SQL Server 2000 為 sp_statistics 傳回的內容類似,只不過 QUALIFIEROWNER 分別被 CATALOGSCHEMA 取代。

有關資料表索引的資訊也可以從 SHOW INDEX 陳述式取得。請參閱第 15.7.7.23 節「SHOW INDEX 陳述式」。以下陳述式是等效的

SELECT * FROM INFORMATION_SCHEMA.STATISTICS
  WHERE table_name = 'tbl_name'
  AND table_schema = 'db_name'

SHOW INDEX
  FROM tbl_name
  FROM db_name

預設情況下,產生的隱藏主索引鍵欄位的相關資訊會在此資料表中顯示。您可以設定 show_gipk_in_create_table_and_information_schema = OFF,以隱藏此類資訊。有關更多資訊,請參閱第 15.1.20.11 節「產生的隱藏主索引鍵」