[精讚] [會員登入]
10790

[MYSQL] 查看資料表狀態

要看資料表的狀態,不是結構喔,以前我都會用 procedure analyse(): SELECT `colname`

分享此文連結 //n.sfs.tw/10377

分享連結 [MYSQL] 查看資料表狀態@新精讚
(文章歡迎轉載,務必尊重版權註明連結來源)
2019-10-25 14:16:49 最後編修
2016-12-05 12:10:02 By 張○○
 

自動目錄

列出資料表詳細資料

要看資料表的狀態,不是結構喔,以前我都會用 procedure analyse(),但這個語法很難記,每次都要查。

  SELECT `colname` FROM `tablename` PROCEDURE ANALYSE ( ) ;

例如我想分析整個table `log` 的欄位:

  SELECT * FROM LOGS PROCEDURE ANALYSE ( ) ;

結果如下表,只列出部分:

Field_name Min_value Max_value Min_length Max_length Empties_or_zeros Nulls
netscreen.logs.dayid 1283904003 1284463504 10 10 0 0
netscreen.logs.recordid 1 138070 1 6 0 0
netscreen.logs.elapsed 0 0 1 1 89099 0
netscreen.logs.timereceived 2010-09-08 00:00:03 2010-09-14 11:25:04 19 19 0 0
netscreen.logs.timegenerated 2010-09-08 15:09:00 2010-09-14 11:09:59 19 19 0 0
netscreen.logs.originaladdr 192.168.2.37 192.168.2.37 12 12 0 0
Avg_value_or_avg_length Std Optimal_fieldtype
1284031444.1070 0.0000 INT(10) UNSIGNED NOT NULL
69715.3704 78711.1853 MEDIUMINT(6) UNSIGNED NOT NULL
0.0000 0.0000 ENUM('0') NOT NULL
19.0000 NULL DATETIME NOT NULL
19.0000 NULL DATETIME NOT NULL
12.0000 NULL ENUM('192.168.2.37') NOT NULL

使用SHOW TABLE

這近同事教我一個方法:

SHOW TABLE STATUS;

SHOW TABLE STATUS WHERE name='table-name';

SHOW TABLE STATUS WHERE name like '%table-name%';

例如我有兩個表 `logs`, `summary` ,下達 SHOW TABLE STATUS;  結果如下:

Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free
logs MyISAM 10 Dynamic 89026 172 15314668 281474976710655 1058816 0
summary MyISAM 10 Dynamic 2 40 80 281474976710655 2048 0
Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
NULL 2010-09-08 15:46:16 2010-09-14 10:58:23 NULL utf8_bin NULL    
NULL 2010-09-09 11:12:35 2010-09-14 10:58:23 NULL utf8_bin NULL    

列出表格中的詳細情況

當然,簡單版的用desc,可以列出表格中的欄位情況:

desc `tablename`;

Field Type Null Key Default Extra
dayid int(11) NO   NULL

 

recordid int(11) NO PRI NULL  

上面也可以改用下面的語法,結果是一樣的

show columns from `tablename`;

explain `tablename`;

列出建立的SQL語法

SHOW create table `tablename`;

只列出欄名

 如果只想列出欄位名稱,可用一個可特別的語法,說起來沒什麼邏輯

SELECT column_name FROM information_schema.columns WHERE  table_name = 'mytable'   AND table_schema = 'mydatabase';

參考資料

[1] http://stackoverflow.com/questions/5525970/mysql-show-columns-but-exclude-everything-except-the-field-names


編修原文 2010-09-14 10:51:16  

END

你可能感興趣的文章

[Mysql/MariaDB] 修改資料庫、表格或欄位名稱 Mysql/MariaDB修改資料庫、表格或欄位名稱

[MySQL/Mariadb] console 將查詢結果輸出到檔案 在mysql 的console中該如何將查詢結果輸出到檔案?

[Mysql] 建立叢集式資料庫4/4--觀察及測試 觀察及測試haproxy+galera建立Mysql的叢集式資料庫,並進行壓力測試

[Mysql/MariaDB] 查看資料庫所占空間 查看資料庫在磁碟中所占空間

[Mysql/Mariadb] 建立使用者及資料庫 Mysql/Mariadb建立使用者、刪除使用者、給予權限、建立資料庫

[Docker] Mariadb-Galera出現Incorrect definition of table mysql.column_stats:'hist_type'及 'histogram' 使用docker的Mariadb-galera出現'hist_type'及 'histogram'型別錯誤的解決方法。

隨機好文

設計的工作絕不接受比價 拿買陽春麵的價格想買牛肉麵,寧願倒掉也不賣

維修海棉拖把頭 這類型的海棉拖把很好用,可是這近發現海棉頭越來越不耐用,也許是錯覺,以往都能用個三四個月,現在二個月就差不多掉下來。 這

[MAC] 安裝APACHE+PHP OS Darwin OpenIDMac1deAir 15.6.0 Darwin Kernel Version 15.6.

[AS3] 變數型態 基本類型宣告 as3 有下列幾種基本類型:string, int, number, object, boolean, n

只會買到爛貨的政府採購法 政府採購的公開招標,常常就只能比價格不能比品牌,只能比價格不能比品質,只能比價格不能比口碑,只能比價格不能比信用...