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