MySQL中SHOW TABLE STATUS的使用及說明
說明
該SQL輸出提供了很多關(guān)于每個非臨時表的信息。
您還可以使用mysqlshow --status db_name
命令獲取此列表。
如出現(xiàn)類似子句,指示要匹配的表名。
可以使用where子句使用更一般的條件來選擇行,此語句還顯示有關(guān)視圖的信息。
語法格式
SHOW TABLE STATUS [{FROM | IN} db_name] [LIKE 'pattern' | WHERE expr] -- 參數(shù):[FROM db_name] 可選,表示查詢哪個數(shù)據(jù)庫下面的表信息?!? -- [LIKE 'pattern'] 可選,表示查詢哪些具體的表名。
輸出信息及解釋
Name
表名。
Engine
表的存儲引擎。舊版本中,叫Type。
Version
表的版本號
Row_format
行存儲格式(Fixed,Dynamic,Compressed,Redundant,Compact)。對于MyISAM表,動態(tài)對應(yīng)于myisamchk報告打包的內(nèi)容。
使用Antelope文件格式時,InnoDB表格式要么是Redundant的,要么是Compact的,要么使用Barracuda文件格式Compressed或Dynamic。
動態(tài)行的行長度可變,例如Varchar或Blob類型字段。固定行是指行長度不變,例如Char和Integer類型字段。Compressed的行則只在壓縮表中存在
Rows
表中的行數(shù)。一些存儲引擎,如MyISAM,存儲精確計數(shù)。
對于其他存儲引擎,如InnoDB,這個值是近似值,并且可能與實際值不同多達40%至50%。
在這種情況下,使用選擇count(*)來獲取精確計數(shù)。
Avg_row_length
平均每行包括的字節(jié)數(shù)
Data_length
對于MyISAM來說,Data_length是數(shù)據(jù)文件的長度,以字節(jié)為單位。
對于InnoDB來說,Data_length是為聚簇索引分配的空間的近似量,以字節(jié)為單位。
具體來說,它是聚簇索引大小,在頁面中,乘上InnoDB頁面大小。
整個表的數(shù)據(jù)量(單位:字節(jié))
Max_data_length
對于MyISAM來說,max_data_length是數(shù)據(jù)文件的最大長度。
這是可以存儲在表中的數(shù)據(jù)的總數(shù),因為使用了數(shù)據(jù)指針大小。
對InnoDB來說是沒有用的。
Index_length
對于MyISAM來說,Index_length_是索引文件的長度,以字節(jié)為單位。
對于InnoDB來說,Index_length是為非聚簇索引分配的空間的近似量,以字節(jié)為單位。
具體來說,它是非聚集索引大小的總和,在頁面中乘上InnoDB頁面大小。
Data_free
分配但未使用的字節(jié)數(shù)。InnoDB表表示表所屬的表空間的空閑空間。對于位于共享表空間中的表,這是共享表空間的空閑空間。如果您使用多個表空間,并且表有自己的表空間,那么唯一的空間僅為該表。
Data_free意味著字節(jié)數(shù)在完全自由范圍內(nèi)減去安全裕度。即使Data_free顯示為0,只要不需要分配新的區(qū)段,就可能插入行。對于NDB集群,data_free顯示磁盤上分配的磁盤數(shù)據(jù)表或磁盤上的磁盤數(shù)據(jù)表或片段所分配的空間。(Data_length列表示內(nèi)存數(shù)據(jù)資源使用情況)。
對于分區(qū)表,此值只是估計值,并且可能不是絕對正確的。在這種情況下獲取此信息的方法更準(zhǔn)確,就是查詢INFORMATION_SCHEMA分區(qū)表,如本示例所示:
SELECT SUM(DATA_FREE) FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_SCHEMA = 'mydb' AND TABLE_NAME = 'mytable';
Auto_increment
下一個Auto_increment的值
Create_time
表的創(chuàng)建時間,分區(qū)表是NULL
Update_time
表的最近更新時間。對于某些存儲引擎來說,此值為null。
例如,InnoDB在其系統(tǒng)表空間中存儲多個表,并且數(shù)據(jù)文件時間戳不適用。
即使使用file-per-table模式與每個InnoDB表在單獨的.ibd文件中,更改緩沖可以將寫入延遲到數(shù)據(jù)文件,因此文件修改時間不同于上次插入、更新或刪除時間。
對于MyISAM,使用了數(shù)據(jù)文件時間戳;但是,在windows上,時間戳不會更新,因此值是不準(zhǔn)確的。分區(qū)表是NULL。
Check_time
表上次檢查的時間。并非所有存儲引擎都更新了這個時間,在這種情況下,值總是空的。
對于分區(qū)的InnoDB表,check_time始終為null。
使用 check table 或myisamchk工具檢查表的最近時間
Collation
表的默認字符集和字符排序規(guī)則
Checksum
如果有的話,則會返回一個實際校驗值。
Create_options
Create_options顯示分區(qū)表的分區(qū)。
當(dāng)創(chuàng)建strict模式禁用的表時,如果不支持指定行格式,則使用存儲引擎的默認行格式。
表中的實際行格式是在row_format列中顯示的。Create_options顯示了在create表語句中指定的行格式。
更改表的存儲引擎時,表定義中保留了不適用于新存儲引擎的表選項,以便在必要時啟用將表與先前定義的選項還原到原始存儲引擎中。Create_options可能顯示保留選項。
指表創(chuàng)建時的其他所有選項
Comment
創(chuàng)建表時使用的注釋(或關(guān)于為什么mysql無法訪問表信息的信息)
注意
- 對于InnoDB表,SHOW TABLE STATUS 不會提供準(zhǔn)確的統(tǒng)計數(shù)據(jù),除了表保留的物理大小之外。
- 行計數(shù)只是SQL優(yōu)化中使用的粗略估計數(shù)。
- 對于NDB表,此語句的輸出顯示了的Avg_row_length和Data_length列的大概值,并且沒有考慮到blob列。
- 對于NDB表,Data_length僅包含存儲在主存中的數(shù)據(jù);max_data_length和data_free列適用于磁盤數(shù)據(jù)。
- 對于NDB集群磁盤數(shù)據(jù)表,max_data_length顯示了分配給磁盤數(shù)據(jù)表或片段的磁盤部分的空間。(data_length列顯示內(nèi)存數(shù)據(jù)資源使用情況)。
- 對于內(nèi)存表來說,data_length、max_data_length和index_length值近似于實際分配內(nèi)存的數(shù)量。分配算法保留內(nèi)存大量減少分配操作的數(shù)量。
- 對于視圖,顯示表狀態(tài)顯示的所有列都為null,除非該名稱指示視圖名稱和注釋表示視圖。
翻譯自MySQL官方手冊
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
- MySQL使用show?effective?grants查看權(quán)限官方解讀
- MySQL通過show status查看、explain分析優(yōu)化數(shù)據(jù)庫性能
- MySQL通過show processlist命令檢視性能的講解
- MySQL中使用SHOW PROFILE命令分析性能的用法整理
- Oracle中實現(xiàn)MySQL show index from table命令SQL腳本分享
- mysql show processlist 顯示mysql查詢進程
- MySQL中show命令方法得到表列及整個庫的詳細信息(精品珍藏)
- MySQL中的SHOW FULL PROCESSLIST命令實現(xiàn)
相關(guān)文章
MySQL使用觸發(fā)器如何實現(xiàn)CHECK檢查約束的功能
這篇文章主要介紹了MySQL使用觸發(fā)器如何實現(xiàn)CHECK檢查約束的功能,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01mysql中插入表數(shù)據(jù)中文亂碼問題的解決方法
mysql是我們項目中非經(jīng)常常使用的數(shù)據(jù)型數(shù)據(jù)庫,下面這篇文章主要給大家介紹了關(guān)于mysql中插入表數(shù)據(jù)中文亂碼問題的解決方法,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-09-09使用JDBC連接Mysql數(shù)據(jù)庫會出現(xiàn)的問題總結(jié)
這篇文章主要給大家介紹了關(guān)于使用JDBC連接Mysql數(shù)據(jù)庫會出現(xiàn)的問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-10-10