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 TABLE
、ALTER TABLE
和CREATE INDEX
陳述式中的索引規格的前綴長度,對於非二進位字串類型(CHAR
、VARCHAR
、TEXT
)被解釋為字元數,而對於二進位字串類型(BINARY
、VARBINARY
、BLOB
)則被解釋為位元組數。在為使用多位元組字元集的非二進位字串欄位指定前綴長度時,請考慮這一點。有關索引前綴的更多資訊,請參閱章節 10.3.5,「欄位索引」和章節 15.1.15,「CREATE INDEX 陳述式」。
PACKED
指示金鑰的封裝方式。如果未封裝,則為
NULL
。NULLABLE
如果欄位可能包含
NULL
值,則包含YES
;如果不是,則包含''
。INDEX_TYPE
所使用的索引方法(
BTREE
、FULLTEXT
、HASH
、RTREE
)。COMMENT
關於索引的資訊,未在其自己的欄位中描述,例如,如果索引已停用,則為
disabled
。INDEX_COMMENT
在建立索引時,使用
COMMENT
屬性為索引提供的任何註解。IS_VISIBLE
索引對於最佳化器是否可見。請參閱章節 10.3.12,「隱形索引」。
EXPRESSION
MySQL 支援函數式金鑰部分(請參閱函數式金鑰部分),這會影響
COLUMN_NAME
和EXPRESSION
欄位。對於非函數式金鑰部分,
COLUMN_NAME
指示金鑰部分索引的欄位,而EXPRESSION
為NULL
。對於函數式金鑰部分,
COLUMN_NAME
欄位為NULL
,而EXPRESSION
指示金鑰部分的運算式。
注意事項
沒有索引的標準
INFORMATION_SCHEMA
表格。MySQL 欄位清單類似於 SQL Server 2000 為sp_statistics
傳回的內容,只是QUALIFIER
和OWNER
分別被CATALOG
和SCHEMA
取代。
關於表格索引的資訊也可以從 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,「產生的隱形主鍵」。