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


MySQL 9.0 參考手冊  /  ...  /  SHOW TABLE STATUS 陳述式

15.7.7.37 SHOW TABLE STATUS 陳述式

SHOW TABLE STATUS
    [{FROM | IN} db_name]
    [LIKE 'pattern' | WHERE expr]

SHOW TABLE STATUS 的運作方式類似於 SHOW TABLES,但會提供每個非 TEMPORARY 資料表的許多資訊。您也可以使用 mysqlshow --status db_name 命令取得此列表。LIKE 子句 (如果存在) 表示要比對的資料表名稱。WHERE 子句可以用來使用更一般的條件選取列,如第 28.8 節「擴充 SHOW 陳述式」中所述。

此陳述式也會顯示有關檢視表的資訊。

SHOW TABLE STATUS 輸出包含以下欄位

  • 名稱

    資料表的名稱。

  • 引擎

    資料表的儲存引擎。請參閱第 17 章,InnoDB 儲存引擎第 18 章,替代的儲存引擎

    對於分割資料表,Engine 會顯示所有分割區所使用的儲存引擎名稱。

  • 版本

    此欄未使用。在 MySQL 8.0 中移除 .frm 檔案後,此欄現在會回報硬編碼的值 10,這是 MySQL 5.7 中使用的最後一個 .frm 檔案版本。

  • Row_format

    資料列儲存格式 (FixedDynamicCompressedRedundantCompact)。對於 MyISAM 資料表,Dynamic 對應於 myisamchk -dvv 回報的 Packed

  • Rows

    資料列的數量。某些儲存引擎(例如 MyISAM)會儲存精確的計數。對於其他儲存引擎(例如 InnoDB),此值是近似值,可能與實際值相差 40% 到 50%。在這種情況下,請使用 SELECT COUNT(*) 來取得精確的計數。

    對於 INFORMATION_SCHEMA 資料表,Rows 值為 NULL

    對於 InnoDB 資料表,資料列計數僅是 SQL 優化中使用的粗略估計值。(如果 InnoDB 資料表已分割,情況也是如此。)

  • Avg_row_length

    平均資料列長度。

  • Data_length

    對於 MyISAMData_length 是資料檔案的長度,以位元組為單位。

    對於 InnoDBData_length 是為叢集索引配置的大約空間量,以位元組為單位。具體而言,它是叢集索引的大小(以頁面為單位)乘以 InnoDB 頁面大小。

    有關其他儲存引擎的資訊,請參閱本節末尾的注意事項。

  • Max_data_length

    對於 MyISAMMax_data_length 是資料檔案的最大長度。這是資料表可以儲存的資料總位元組數,以所使用的資料指標大小為準。

    未用於 InnoDB

    有關其他儲存引擎的資訊,請參閱本節末尾的注意事項。

  • Index_length

    對於 MyISAMIndex_length 是索引檔案的長度,以位元組為單位。

    對於 InnoDBIndex_length 是為非叢集索引配置的大約空間量,以位元組為單位。具體而言,它是非叢集索引大小的總和(以頁面為單位)乘以 InnoDB 頁面大小。

    有關其他儲存引擎的資訊,請參閱本節末尾的注意事項。

  • Data_free

    已配置但未使用的位元組數。

    InnoDB 資料表會回報資料表所屬的表空間的可用空間。對於位於共用表空間中的資料表,這是共用表空間的可用空間。如果您使用多個表空間,且資料表有自己的表空間,則可用空間僅適用於該資料表。可用空間是指完全可用的擴展區中的位元組數減去安全邊際。即使可用空間顯示為 0,只要不需要配置新的擴展區,仍有可能插入資料列。

    對於 NDB Cluster,Data_free 會顯示磁碟上為磁碟資料資料表或磁碟上的片段配置但未使用的空間。(記憶體內資料資源使用情況由 Data_length 欄回報。)

    對於分割資料表,此值僅為估計值,可能不完全正確。在這種情況下,更精確的取得此資訊的方法是查詢 INFORMATION_SCHEMA PARTITIONS 資料表,如本範例所示

    SELECT SUM(DATA_FREE)
        FROM  INFORMATION_SCHEMA.PARTITIONS
        WHERE TABLE_SCHEMA = 'mydb'
        AND   TABLE_NAME   = 'mytable';

    如需更多資訊,請參閱第 28.3.21 節,「INFORMATION_SCHEMA PARTITIONS 資料表」

  • Auto_increment

    下一個 AUTO_INCREMENT 值。

  • Create_time

    資料表建立的時間。

  • Update_time

    上次更新資料檔案的時間。對於某些儲存引擎,此值為 NULL。例如,InnoDB 會在其系統表空間中儲存多個資料表,且資料檔案時間戳記不適用。即使在每個資料表檔案模式下,每個 InnoDB 資料表都位於單獨的 .ibd 檔案中,變更緩衝也可能會延遲寫入資料檔案,因此檔案修改時間與上次插入、更新或刪除的時間不同。對於 MyISAM,使用資料檔案時間戳記;但是,在 Windows 上,時間戳記不會因更新而更新,因此該值不準確。

    Update_time 會顯示在未分割的 InnoDB 資料表上執行的最後一次 UPDATEINSERTDELETE 的時間戳記值。對於 MVCC,時間戳記值反映COMMIT 時間,該時間被視為最後一次更新時間。當伺服器重新啟動或資料表從 InnoDB 資料字典快取中移除時,時間戳記不會保留。

  • Check_time

    上次檢查資料表的時間。並非所有儲存引擎都會更新此時間,在這種情況下,該值始終為 NULL

    對於分割的 InnoDB 資料表,Check_time 始終為 NULL

  • Collation

    資料表的預設定序。輸出不會明確列出資料表的預設字元集,但定序名稱會以字元集名稱開頭。

  • Checksum

    即時檢查總和值(如果有的話)。

  • Create_options

    CREATE TABLE 一起使用的額外選項。

    對於分割資料表,Create_options 會顯示 partitioned

    如果資料表已加密,或指定的加密方式與結構描述加密不同,則 Create_options 會顯示每個資料表檔案表空間的 ENCRYPTION 子句。加密子句不會顯示在一般表空間中建立的資料表。若要識別已加密的每個資料表檔案和一般表空間,請查詢 INNODB_TABLESPACES ENCRYPTION 欄。

    當在停用嚴格模式的情況下建立資料表時,如果指定的資料列格式不受支援,則會使用儲存引擎的預設資料列格式。資料表的實際資料列格式會在 Row_format 欄中回報。Create_options 會顯示在 CREATE TABLE 陳述式中指定的資料列格式。

    變更資料表的儲存引擎時,不適用於新儲存引擎的資料表選項會保留在資料表定義中,以便在必要時將資料表還原為具有先前定義選項的原始儲存引擎。Create_options 可能會顯示保留的選項。

  • Comment

    建立資料表時使用的註解(或有關 MySQL 無法存取資料表資訊的原因)。

注意事項
  • 對於 InnoDB 資料表,SHOW TABLE STATUS 除了資料表保留的實體大小外,不會提供精確的統計資料。資料列計數僅是 SQL 優化中使用的粗略估計值。

  • 對於 NDB 資料表,此陳述式的輸出會顯示 Avg_row_lengthData_length 欄的適當值,但 BLOB 欄除外。

  • 對於 NDB 資料表,Data_length 僅包含儲存在主記憶體中的資料;Max_data_lengthData_free 欄適用於磁碟資料。

  • 對於 NDB Cluster 磁碟資料資料表,Max_data_length 會顯示為磁碟資料資料表或片段的磁碟部分配置的空間。(記憶體內資料資源使用情況由 Data_length 欄回報。)

  • 對於 MEMORY 資料表,Data_lengthMax_data_lengthIndex_length 值會近似實際配置的記憶體量。配置演算法會保留大量記憶體,以減少配置操作的次數。

  • 對於檢視表,SHOW TABLE STATUS 顯示的大多數欄為 0 或 NULL,但 Name 表示檢視表名稱、Create_time 表示建立時間,而 Comment 則表示 VIEW

資料表資訊也可從 INFORMATION_SCHEMA TABLES 資料表取得。請參閱第 28.3.38 節,「INFORMATION_SCHEMA TABLES 資料表」