有時候我們想看下指定庫下所有表的使用情況,比如,查詢表的Table大小,什么時候創建的,數據最近被更新的時間(即最近一筆insert/update/delete的時間)。這些信息對我們進行庫表維護很有作用。
1.查詢語法
SHOW TABLE STATUS [{FROM | IN} db_name] [LIKE 'pattern' | WHERE expr]
2.查詢語句說明
{FROM | IN} db_name, 可選項,表示查詢哪個數據庫下面的表信息。
LIKE 'pattern' | WHERE expr ,可選項,可指定符合條件的表;LIKE 'pattern' 可指定表名; WHERE expr,可通過 返回輸出字段like來指定符合條件的表名。
不帶任何參數,表示查詢的是當前庫中,所以表的具體信息。
例如,以下語句為查詢當前庫中所以表大小為16384的表信息。
SHOW TABLE STATUS where Data_length like 16384;
此語句返回信息如下圖:
3.查詢結果中各列的說明
返回列 | 說明 |
Name | 表名稱 |
Engine | 表的存儲引擎 |
Version | 版本 |
Row_format | 行格式 |
Rows | 表中的行數。對於非事務性表,這個值是精確的,對於事務性引擎,這個值通常是估算的。 |
Avg_row_length | 平均每行的大下(字節) |
Data_length | 表的數據量(單位:字節) |
Max_data_length | 表可以容納的最大數據量 |
Index_length | 索引占用磁盤的空間大小 |
Data_free | 標識已分配,但現在未使用的空間,並且包含了已被刪除行的空間。 |
Auto_increment | 下一個Auto_increment的值 |
Create_time | 表的創建時間 |
Update_time | 表的最近更新時間 |
Check_time | 最近一次使用 check table 或myisamchk工具檢查表的時間 |
Collation | 表的字符集和字符排序規則 |
Checksum | 如果啟用,則對整個表的內容計算時的校驗和 |
Create_options | 表創建時的其它 |
Comment | 表在創建是添加的注釋說明 |
4.通過系統數據庫查詢
其實我們也可以通過information_schema數據庫下面的tables表去查詢表的具體信息。查詢結果和上面的信息差不多。例如我們查詢 dbtest 數據庫下面的表信息
select * from information_schema.tables where TABLE_SCHEMA='dbtest' \G;
顯示結果如下: