[精讚] [會員登入]
10542

[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] 建立叢集式資料庫3/4 -- DB1設置及DB PROXY 使用galera建立Mysql的叢集式資料庫 ,繼續修正第1DB及運作PROXY

[Mysql] 修改資料庫預設校對或編碼 修改資料庫預設校對或編碼的方法

[Mysql/Mariadb] 查看使用狀態,抓出可疑慢查詢SQL 當Mysql 的負載loading飆高時,除了重新啟動外,如果想對症下藥,那該怎麼處理?

[MariaDB] Centos 7安裝mariadb + apache + php + phpmyadmin Centos 7安裝mariadb+apache+php+phpmyadmin

[Mysql] 使用索引來加速搜尋 只要是常常用到搜索條件的欄位,就應該把它設成索引鍵,有無設定的速度差可能會好幾倍

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

我有話要說

>>

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

訪客留言

[無留言]

隨機好文

使用Google尋找你的手機 這近發現google竟然可以用來找android的手機,而且不需要經過什麼設定或安裝軟體。

一個邏輯的錯誤刪了全部檔案的經驗 今天本來想做一件很簡單的事,但卻足足浪費我多一倍的時間,再加上刪掉我全部的檔案,原因只是因為我自己的邏輯錯誤。

NETCRAFT發現你的網站及作業系統 NETCRAFT可以發現你的網站及作業系統

精讚的版面變化 ▓此文僅作為舊文的記錄▓ 這篇文章為了紀念改版完成而撰寫。 原本的部落格是民國97年的作品,那時還是用舊有的技術來寫,很

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