[精讚] [會員登入]
10461

[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 安裝完畢要做的事 Mysql 安裝完畢後,該處理的流程

[Mysql/Mariadb] 利用phpMyAdmin 建立關聯式資料表 利用phpMyAdmin 建立關聯式資料表

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

Mysql INSERT ... ON DUPLICATE KEY UPDATE 寫法,MYSQL如果存在的修改,不存在就新增的寫法 Mysql有則修改,無則新增的sql寫法

[Mysql] 建立叢集式資料庫2/4 -- DB2、DB3設定 使用galera建立Mysql的叢集式資料庫 ,繼續建立第2,第3台DBs

我有話要說

>>

限制:留言最高字數1000字。 限制:未登入訪客,每則留言間隔需超過10分鐘,每日最多5則留言。

訪客留言

[無留言]

隨機好文

PHP for sphinx 函式庫安裝 PECL/sphinx PHP>= 5.2.2 已經能原生支援 sphinx,可是預設的沒有裝,我們得自己裝才能用

為什麼要重造輪子? 什麼輪子?造什麼輪子?我為什麼要重造輪子?

維修冰箱 維修冰箱

詭異的創業思維 創業的思維中,有多少銀彈,有多少技術,有多少人脈,有多少時間等等,每個都要考慮進去,以熱忱建立的關係脆弱的像蘇打餅乾一樣..

[NetBeans] 使用git複製別人的專案 NetBeans使用git複製別人的專案及版本控制