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

MySQL SHOW 命令大全:20+ 子命令速查與實戰用法

     編輯:MySQL 資料庫相關知識

分類速查表

類別命令用途實戰範例
對象列表SHOW DATABASES列出所有數據庫SHOW DATABASES LIKE 'prod_%';
SHOW TABLES [FROM db]列出表SHOW TABLES FROM mysql LIKE 'user%';
SHOW COLUMNS FROM tbl [FROM db]列出欄位結構 (等同 DESC)SHOW COLUMNS FROM users WHERE Field LIKE '%time%';
SHOW INDEX FROM tbl [FROM db]列出索引詳情SHOW INDEX FROM orders WHERE Key_name != 'PRIMARY';
權限與安全SHOW GRANTS [FOR user]顯示用戶權限 (可用於審計)SHOW GRANTS FOR 'app'@'%';
SHOW PRIVILEGES列出服務器支援的所有權限確認動態權限 (如 BACKUP_ADMIN)
SHOW CREATE USER user8.0+ 顯示創建用戶完整語句遷移用戶定義
運行狀態SHOW PROCESSLIST [FULL]當前線程列表 (FULL 顯示完整 SQL)SHOW FULL PROCESSLIST WHERE Time > 60;
SHOW STATUS [LIKE 'pat']會話/全局狀態變量SHOW GLOBAL STATUS LIKE 'Threads_%';
SHOW VARIABLES [LIKE 'pat']會話/全局系統變量SHOW GLOBAL VARIABLES LIKE 'max_connections';
SHOW ENGINE INNODB STATUSInnoDB 內部狀態 (鎖、事務、緩衝池、死鎖)死鎖分析、監控腳本核心數據源
表維護SHOW TABLE STATUS [FROM db]表統計 (行數、大小、自增值、碎片率)SHOW TABLE STATUS WHERE Data_free > 100*1024*1024;
SHOW CREATE DATABASE db庫創建 DDL遷移庫定義
SHOW CREATE TABLE tbl表創建 DDL (含索引、分區、外鍵)版本控制、跨環境同步結構
存儲引擎SHOW ENGINES可用引擎及默認引擎確認 InnoDB 是否 DEFAULT
SHOW PLUGINS已安裝插件狀態確認 validate_password、audit_log 是否 ACTIVE
SHOW ENGINE INNODB MUTEXMutex 爭用統計 (性能診斷)高併發鎖熱點分析
診斷與日志SHOW WARNINGS [LIMIT n]上條語句的警告/通知INSERT 後檢查數據截斷警告
SHOW ERRORS [LIMIT n]上條語句的錯誤批量導入失敗快速定位
SHOW BINLOG EVENTS [IN 'file' FROM pos]二進制日志事件瀏覽PITR 恢復定位、複製延遲分析
複制SHOW SLAVE STATUS / SHOW REPLICA STATUS從庫狀態 (Seconds_Behind_Master 等)監控複製延遲、錯誤號
SHOW MASTER STATUS主庫二進制日志文件/位置建立新從庫起點

高階組合技


-- 1. 找出無主鍵表
SELECT TABLE_SCHEMA, TABLE_NAME FROM information_schema.TABLES
WHERE TABLE_TYPE='BASE TABLE' AND TABLE_SCHEMA NOT IN ('mysql','sys','performance_schema','information_schema')
AND TABLE_NAME NOT IN (SELECT TABLE_NAME FROM information_schema.TABLE_CONSTRAINTS WHERE CONSTRAINT_TYPE='PRIMARY KEY');

-- 2. 找出碎片率 > 20% 表 (需優化)
SELECT TABLE_SCHEMA, TABLE_NAME, Data_free, Data_length+Index_length AS total_size,
       ROUND(Data_free/(Data_length+Index_length)*100,2) AS frag_pct
FROM information_schema.TABLES
WHERE Data_free > 0 AND (Data_length+Index_length) > 100*1024*1024
ORDER BY frag_pct DESC;

-- 3. 監控長事務 (InnoDB)
SHOW ENGINE INNODB STATUS\G
-- 關注 TRANSACTIONS 區塊:看 trx_id、trx_started、trx_mysql_thread_id

總結

SHOW 系列是 MySQL DBA 的「聽診器」。熟練掌握 PROCESSLIST 看阻塞、ENGINE INNODB STATUS 診斷死鎖、TABLE STATUS 發現碎片、SLAVE STATUS 監控複製、VARIABLES/STATUS 調優參數,日常運維 80% 場景無需登入系統、無需第三方工具,原生命令即可搞定。

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