1. 程式人生 > >MySQL 常用show 語句

MySQL 常用show 語句

1. show tables或show tables from database_name; -- 顯示當前資料庫中所有表的名稱。 
2. show databases; -- 顯示mysql中所有資料庫的名稱。 
3. show columns from table_name from database_name; 或show columns from database_name.table_name; -- 顯示錶中列名稱。 
4. show grants for user_name; -- 顯示一個使用者的許可權,顯示結果類似於grant 命令。 
5. show index from table_name; -- 顯示錶的索引。 
6. show status; -- 顯示一些系統特定資源的資訊,例如,正在執行的執行緒數量。 
7. show variables; -- 顯示系統變數的名稱和值。 
8. show processlist; -- 顯示系統中正在執行的所有程序,也就是當前正在執行的查詢。大多數使用者可以檢視他們自己的程序,但是如果他們擁有process許可權,就可以檢視所有人的程序,包括密碼。 
9. show table status; -- 顯示當前使用或者指定的database中的每個表的資訊。資訊包括表型別和表的最新更新時間。 
10. show privileges; -- 顯示伺服器所支援的不同許可權。 
11. show create database database_name; -- 顯示create database 語句是否能夠建立指定的資料庫。 
12. show create table table_name; -- 顯示create database 語句是否能夠建立指定的資料庫。 
13. show engines; -- 顯示安裝以後可用的儲存引擎和預設引擎。 
14. show innodb status; -- 顯示innoDB儲存引擎的狀態。 
15. show logs; -- 顯示BDB儲存引擎的日誌。 
16. show warnings; -- 顯示最後一個執行的語句所產生的錯誤、警告和通知。 
17. show errors; -- 只顯示最後一個執行語句所產生的錯誤。 
18. show [storage] engines; --顯示安裝後的可用儲存引擎和預設引擎。

mysql show命令

show databases;

show tables from db_name;

show columns from table_name from db_name;

show index from talbe_name [from db_name];

show status;

show variables;

show [full] processlist;

show table status [from db_name];

show grants for user;

除了status,processlist和grants外,其它的都可以帶有like wild選項,它可以使用SQL的'%'和'_'字元;

show databases like '%t';

將會列出所有資料庫名字末尾為't'字元的資料庫

當然了,在這些sql中,你也可以用db_name.table_name來代替 table_name from db_name這樣寫會更簡便些!

如果一個使用者沒有一個表的任何許可權,表將不在SHOW TABLES或mysqlshow db_name中的輸出中顯示

大家可能還記得describe table_name ,它實現的是與show columns from db_name.table_name一樣的效果

show status將可以用mysqlshow --status 來得到同樣的效果

  • 列 含義
  • Name 表名
  • Type 表的型別 (ISAM,MyISAM或HEAP)
  • Row_format 行儲存格式 (固定, 動態, 或壓縮)
  • Rows 行數量
  • Avg_row_length 平均行長度
  • Data_length 資料檔案的長度
  • Max_data_length 資料檔案的最大長度
  • Index_length 索引檔案的長度
  • Data_free 已分配但未使用了位元組數
  • Auto_increment 下一個 autoincrement(自動加1)值
  • Create_time 表被創造的時間
  • Update_time 資料檔案最後更新的時間
  • Check_time 最後對錶執行一個檢查的時間
  • Create_options 與CREATE TABLE一起使用的額外選項
  • Comment 當創造表時,使用的註釋 (或為什麼MySQL不能存取表資訊的一些資訊)。

SHOW FIELDS是SHOW COLUMNS一個同義詞,SHOW KEYS是SHOW INDEX一個同義詞。你也可以用mysqlshow db_name tbl_name或mysqlshow -k db_name tbl_name 列出一張表的列或索引。

SHOW INDEX以非常相似於ODBC的SQLStatistics呼叫的格式返回索引資訊。下面的列被返回:

列 含義

Table   表名

Non_unique  0,如果索引不能包含重複。

Key_name    索引名

Seq_in_index    索引中的列順序號, 從 1 開始。

Column_name 列名。

Collation   列怎樣在索引中被排序。在MySQL中,這可以有值A(升序) 或NULL(不排序)。

Cardinality 索引中唯一值的數量。這可通過執行isamchk -a更改.

Sub_part    如果列只是部分被索引,索引字元的數量。NULL,如果整個鍵被索引。

SHOW STATUS提供伺服器的狀態資訊(象mysqladmin extended-status一樣)。輸出類似於下面的顯示,儘管格式和數字可以有點不同:

+--------------------------+--------+

| Variable_name            | Value  |

+--------------------------+--------+

| Aborted_clients          | 0      |

| Aborted_connects         | 0      |

| Connections              | 17     |

| Created_tmp_tables       | 0      |

| Delayed_insert_threads   | 0      |

| Delayed_writes           | 0      |

| Delayed_errors           | 0      |

| Flush_commands           | 2      |

| Handler_delete           | 2      |

| Handler_read_first       | 0      |

| Handler_read_key         | 1      |

| Handler_read_next        | 0      |

| Handler_read_rnd         | 35     |

| Handler_update           | 0      |

| Handler_write            | 2      |

| Key_blocks_used          | 0      |

| Key_read_requests        | 0      |

| Key_reads                | 0      |

| Key_write_requests       | 0      |

| Key_writes               | 0      |

| Max_used_connections     | 1      |

| Not_flushed_key_blocks   | 0      |

| Not_flushed_delayed_rows | 0      |

| Open_tables              | 1      |

| Open_files               | 2      |

| Open_streams             | 0      |

| Opened_tables            | 11     |

| Questions                | 14     |

| Slow_queries             | 0      |

| Threads_connected        | 1      |

| Threads_running          | 1      |

| Uptime                   | 149111 |

+--------------------------+--------+

上面列出的狀態變數有下列含義:

  • Aborted_clients 由於客戶沒有正確關閉連線已經死掉,已經放棄的連線數量。
  • Aborted_connects 嘗試已經失敗的MySQL伺服器的連線的次數。
  • Connections 試圖連線MySQL伺服器的次數。
  • Created_tmp_tables 當執行語句時,已經被創造了的隱含臨時表的數量。
  • Delayed_insert_threads 正在使用的延遲插入處理器執行緒的數量。
  • Delayed_writes 用INSERT DELAYED寫入的行數。
  • Delayed_errors 用INSERT DELAYED寫入的發生某些錯誤(可能重複鍵值)的行數。
  • Flush_commands 執行FLUSH命令的次數。
  • Handler_delete 請求從一張表中刪除行的次數。
  • Handler_read_first 請求讀入表中第一行的次數。
  • Handler_read_key 請求數字基於鍵讀行。
  • Handler_read_next 請求讀入基於一個鍵的一行的次數。
  • Handler_read_rnd 請求讀入基於一個固定位置的一行的次數。
  • Handler_update 請求更新表中一行的次數。
  • Handler_write 請求向表中插入一行的次數。
  • Key_blocks_used 用於關鍵字快取的塊的數量。
  • Key_read_requests 請求從快取讀入一個鍵值的次數。
  • Key_reads 從磁碟物理讀入一個鍵值的次數。
  • Key_write_requests 請求將一個關鍵字塊寫入快取次數。
  • Key_writes 將一個鍵值塊物理寫入磁碟的次數。
  • Max_used_connections 同時使用的連線的最大數目。
  • Not_flushed_key_blocks 在鍵快取中已經改變但是還沒被清空到磁碟上的鍵塊。
  • Not_flushed_delayed_rows 在INSERT DELAY佇列中等待寫入的行的數量。
  • Open_tables 開啟表的數量。
  • Open_files 開啟檔案的數量。
  • Open_streams 開啟流的數量(主要用於日誌記載)
  • Opened_tables 已經開啟的表的數量。
  • Questions 發往伺服器的查詢的數量。
  • Slow_queries 要花超過long_query_time時間的查詢數量。
  • Threads_connected 當前開啟的連線的數量。
  • Threads_running 不在睡眠的執行緒數量。
  • Uptime 伺服器工作了多少秒。
  • 轉載: https://www.cnblogs.com/SQL888/p/5750161.html