首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL SHOW 命令大全:20 種常用 SHOW 語法與實戰用法

     編輯:MySQL 資料庫相關知識

MySQL SHOW 命令完整參考:元數據查看、狀態監控、權限審計、存儲引擎、複製狀態、錯誤診斷

SHOW 系列命令是 MySQL 運維、開發、調優的「萬用鑰匙」,涵蓋數據庫/表/列/索引/權限/變量/進程/引擎/複製/錯誤等全方位元數據與運行狀態。本文整理 20 種高頻 SHOW 命令,附語法、輸出解讀、實戰場景。

一、對象結構類

命令語法示例用途關鍵輸出
SHOW DATABASESSHOW DATABASES;列出所有數據庫Database 列
SHOW TABLESSHOW TABLES [FROM db_name];列出庫中所有表Tables_in_db 列
SHOW COLUMNSSHOW COLUMNS FROM tbl [FROM db];顯示表列定義(同 DESC)Field, Type, Null, Key, Default, Extra
SHOW INDEXSHOW INDEX FROM tbl [FROM db];顯示表索引詳情Key_name, Seq_in_index, Column_name, Cardinality, Index_type
SHOW TABLE STATUSSHOW TABLE STATUS [FROM db];表級統計信息Engine, Rows, Data_length, Index_length, Auto_increment, Create_time, Update_time, Collation
SHOW CREATE DATABASESHOW CREATE DATABASE db_name;查看庫創建語句(含字符集/校對)Create Database 語句
SHOW CREATE TABLESHOW CREATE TABLE tbl_name;查看表創建語句(含索引/外鍵/分區)Create Table 完整 DDL

二、權限與用戶類

命令語法示例用途關鍵輸出
SHOW GRANTSSHOW GRANTS FOR 'user'@'host';顯示用戶權限(GRANT 語句形式)Grants 列
SHOW PRIVILEGESSHOW PRIVILEGES;列出服務器支持的所有權限類型Privilege, Context, Comment

三、運行狀態與監控類

命令語法示例用途關鍵輸出/場景
SHOW STATUSSHOW [GLOBAL|SESSION] STATUS [LIKE 'pattern'];服務器狀態變量(計數器)Threads_connected, Questions, Innodb_buffer_pool_reads, Qcache_hits 等。GLOBAL 為全局累計,SESSION 為當前連接
SHOW VARIABLESSHOW [GLOBAL|SESSION] VARIABLES [LIKE 'pattern'];服務器配置參數innodb_buffer_pool_size, max_connections, sql_mode, character_set_server 等
SHOW PROCESSLISTSHOW [FULL] PROCESSLIST;當前所有線程狀態Id, User, Host, db, Command, Time, State, Info。FULL 顯示完整 SQL。需 PROCESS 權限看他人進程
SHOW ENGINE INNODB STATUSSHOW ENGINE INNODB STATUS\GInnoDB 內部引擎狀態事務、鎖、死鎖、緩存池、日志、插入緩存、自適應哈希索引等極詳細信息。**調優必看**
SHOW ENGINESSHOW ENGINES;可用存儲引擎及默認引擎Engine, Support, Comment, Transactions, XA, Savepoints
SHOW [STORAGE] ENGINESSHOW STORAGE ENGINES;同 SHOW ENGINES-

四、複製與二進制日志類

命令語法示例用途
SHOW MASTER STATUSSHOW MASTER STATUS;主庫 binlog 文件名、Position、過濾規則
SHOW SLAVE STATUSSHOW SLAVE STATUS\G從庫複製狀態:IO/SQL 線程狀態、延遲、錯誤、Relay Log 位置、GTID 執行集
SHOW BINARY LOGSSHOW BINARY LOGS;列出所有 binlog 文件及大小
SHOW BINLOG EVENTSSHOW BINLOG EVENTS [IN 'log_name'] [FROM pos] [LIMIT n];解析 binlog 事件內容
SHOW RELAYLOG EVENTSSHOW RELAYLOG EVENTS ...解析中繼日志事件

五、錯誤診斷類

命令語法示例用途
SHOW WARNINGSSHOW WARNINGS [LIMIT n];上條語句產生的錯誤、警告、通知
SHOW ERRORSSHOW ERRORS [LIMIT n];僅顯示上條語句的錯誤(不含警告/通知)

六、存儲例程類

命令語法示例用途
SHOW PROCEDURE STATUSSHOW PROCEDURE STATUS [LIKE 'pattern'];所有存儲過程基本信息:Db, Name, Type, Definer, Created, Modified
SHOW FUNCTION STATUSSHOW FUNCTION STATUS [LIKE 'pattern'];所有存儲函數基本信息
SHOW CREATE PROCEDURESHOW CREATE PROCEDURE db.proc_name;存儲過程完整定義
SHOW CREATE FUNCTIONSHOW CREATE FUNCTION db.func_name;存儲函數完整定義

七、實戰組合拳

  1. 排查慢查詢: SHOW PROCESSLIST 找長時間 State → SHOW ENGINE INNODB STATUS 看鎖等待 → EXPLAIN 分析 SQL。
  2. 檢查複製延遲: SHOW SLAVE STATUS\G 關注 Seconds_Behind_Master、Slave_IO_Running/Slave_SQL_Running、Last_Error。
  3. 驗證配置生效: SHOW VARIABLES LIKE 'innodb%';、SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool%';。
  4. 權限審計: SHOW GRANTS FOR 'app_user'@'%'; 確認最小權限原則。
  5. 表健康度檢查: SHOW TABLE STATUS\G 關注 Data_free(碎片)、Auto_increment(接近上限)、Rows(統計準確性)。

八、進階技巧

  • 使用 \G 代替分號,垂直顯示寬表輸出更易讀。
  • LIKE 'pattern' 支持 % 通配,如 SHOW VARIABLES LIKE '%buffer%';。
  • information_schema 表提供同等功能且可 JOIN 過濾,適合腳本化采集(如 SELECT * FROM information_schema.TABLES WHERE TABLE_SCHEMA='db';)。
  • MySQL 8.0+ 部分 SHOW 命令輸出增加列(如 SHOW TABLE STATUS 含 Hidden 列標識隱藏列)。

總結

熟練掌握 SHOW 命令族是 MySQL DBA 與開發者的基本功。建議收藏本文為速查表,重點熟記:SHOW PROCESSLIST、SHOW ENGINE INNODB STATUS、SHOW SLAVE STATUS、SHOW VARIABLES/STATUS、SHOW CREATE TABLE、SHOW GRANTS 六大核心命令,覆蓋 80% 日常運維診斷場景。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved