MySQL常用的show語法

MySQL show語法

SHOW BINARY LOGS

SHOW BINARY LOGS 列出服務器上的二進制日誌文件。
SHOW BINLOG EVENTS 顯示二進制日誌中的事件。如果未指定 ,則顯示第一個二進制日誌。

mysql> SHOW BINARY LOGS;
| Log_name         | File_size |
| ---------------- | --------- |
| mysql-bin.000036 | 524288088 |
| mysql-bin.000037 | 524288064 |
| mysql-bin.000038 | 524288230 |

如果沒有設置啓用二進制日誌文件,將會出現如下提示:

mysql> SHOW BINARY LOGS;
ERROR 1381 (HY000): You are not using binary logging
mysql> SHOW MASTER LOGS;
ERROR 1381 (HY000): You are not using binary logging
mysql> SHOW BINLOG EVENTS;
Empty set (0.01 sec)

SHOW CHARACTER SET

顯示所有可用的字符集

SHOW CHARACTER SET;
SHOW CHARACTER SET LIKE 'utf8%';

示例:

mysql> SHOW CHARACTER SET LIKE 'utf8%';
+---------+---------------+--------------------+--------+
| Charset | Description   | Default collation  | Maxlen |
+---------+---------------+--------------------+--------+
| utf8    | UTF-8 Unicode | utf8_general_ci    |      3 |
| utf8mb4 | UTF-8 Unicode | utf8mb4_general_ci |      4 |
+---------+---------------+--------------------+--------+
2 rows in set (0.00 sec)

SHOW COLLATION

輸出包括所有可用的字符集

SHOW COLLATION;
SHOW COLLATION LIKE 'utf8%';

SHOW COLUMNS

顯示在一個給定表中的各列的信息,對於視圖,本語句也起作用。

SHOW COLUMNS FROM mydb.mytable;
SHOW COLUMNS FROM mytable FROM mydb;

SHOW CREATE DATABASE

顯示用於創建給定數據庫CREATE DATABASE語句。也可以使用SHOW CREATE SCHEMA。

SHOW CREATE DATABASE test;
SHOW CREATE DATABASE test\G;

SHOW CREATE TABLE

SHOW CREATE TABLE java;
SHOW CREATE TABLE java\G;

SHOW DATABASES

SHOW DATABASES 可以在 MySQL 服務器主機上列出數據庫。
也可以使用mysqlshow命令得到此清單。
只能看到擁有某些權限的數據庫,除非擁有全局SHOW DATABASES權限。

SHOW DATABASES;

SHOW ENGINE

SHOW ENGINE: 顯示存儲引擎的日誌或狀態信息。目前支持以下語句:
SHOW ENGINE INNODB MUTEX 顯示 InnoDB mutex 和 rw-lock 統計信息

SHOW ENGINE engine_name {STATUS | MUTEX}
SHOW ENGINE INNODB STATUS;

示例:

mysql> SHOW ENGINE INNODB MUTEX;
+--------+-----------------------------+-----------+
| Type   | Name                        | Status    |
+--------+-----------------------------+-----------+
| InnoDB | rwlock: dict0dict.cc:1184   | waits=851 |
| InnoDB | rwlock: fil0fil.cc:1381     | waits=3   |
| InnoDB | rwlock: log0log.cc:838      | waits=226 |
| InnoDB | rwlock: btr0sea.cc:195      | waits=1   |
| InnoDB | rwlock: hash0hash.cc:353    | waits=1   |
| InnoDB | rwlock: hash0hash.cc:353    | waits=1   |
| InnoDB | sum rwlock: buf0buf.cc:1460 | waits=184 |
+--------+-----------------------------+-----------+
7 rows in set (0.12 sec)

SHOW ENGINES

SHOW ENGINES顯示存儲引擎的狀態信息。對於檢查一個存儲引擎是否被支持,或者對於查看默認引擎是什麼,本語句十分有用。

SHOW ENGINES;
SHOW ENGINES\G;

示例:

msyql> show engines;
| Engine| Support | Comment  | Transactions | XA   | Savepoints |
| -----| ------- | -----------------------  | ---------  | ---- | ---- |
| InnoDB| DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES  | YES |
| CSV| YES | CSV storage engine | NO | NO | NO |
| MyISAM| YES | MyISAM storage engine | NO | NO | NO |
| BLACKHOLE| YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
| MEMORY| YES | Hash based,stored in memory,useful for temporary tables| NO | NO | NO |
| ARCHIVE| YES | Archive storage engine | NO | NO | NO |
| MRG_MYISAM| YES | Collection of identical MyISAM tables |NO|NO| NO|
| FEDERATED| NO | Federated MySQL storage engine|NULL|NULL| NULL |

SHOW ERRORS

該語句只顯示錯誤,不同時顯示錯誤、警告和注意。

SHOW COUNT(*) ERRORS;
SHOW ERRORS;

SHOW GRANTS

SHOW GRANTS;
SHOW GRANTS FOR user;
SHOW GRANTS FOR CURRENT_USER;
SHOW GRANTS FOR CURRENT_USER();

SHOW INDEX

SHOW INDEX會返回表索引信息。

SHOW INDEX FROM mydb.mytable;
SHOW INDEX FROM mytable FROM mydb;

SHOW OPEN TABLES

列舉在表緩存中當前被打開的非TEMPORARY表。

SHOW OPEN TABLES;

SHOW PRIVILEGES

顯示MySQL服務器支持的系統權限清單。確切的輸出根據服務器的版本而定

SHOW PRIVILEGES;

**SHOW PROFILES **

SHOW PROFILES語句與SHOW PROFILE顯示的分析信息一起顯示在當前會話過程中執行的語句的資源使用情況。

SHOW PROCESSLIST

SHOW PROCESSLIST 用來顯示哪些線程正在運行。
也可以使用mysqladmin processlist語句得到此信息。
如果有SUPER權限,可以看到所有線程。否則,只能看到自己的線程

mysql> SHOW PROCESSLIST;
+---+--------+---------------+-----+------+----+-----+----------+
| Id  | User | Host | db | Command | Time | State    | Info |
+---+--------+---------------+------+------+---+------+----------+
|120|homestead|192.168.10.1:57001| testdb| Sleep|10 | | NULL |
|124|homestead|192.168.10.1:60613| NULL  | Sleep| 59 | | NULL |
|138|homestead|192.168.10.1:56737| testdb| Sleep| 1010 | | NULL |
|139|homestead|localhost| NULL | Query| 0| starting | SHOW PROCESSLIST |
+---+--------+---------------+-----+------+----+-----+----------+

SHOW STATUS

提供服務器狀態信息。此信息也可以使用mysqladmin extended-status命令獲得。

SHOW STATUS;

SHOW TABLE STATUS

SHOW TABLE STATUS的性質與SHOW TABLE類似,不過,可以提供每個表的大量信息。
也可以使用mysqlshow --status db_name命令得到此清單。

本語句也顯示視圖信息。

SHOW TABLE STATUS;
SHOW TABLE STATUS FROM test;

SHOW TABLES

SHOW TABLES列舉了給定數據庫中的非TEMPORARY表。
也可以使用 mysqlshow db_name命令得到此清單。

SHOW TABLES;
mysql> SHOW TABLES;
ERROR 1046 (3D000): No database selected
mysql> use testdb;
Database changed
mysql> SHOW TABLES;
+------------------+
| Tables_in_testdb |
+------------------+
| en_names         |
| my_todos         |
| my_users         |
+------------------+
3 rows in set (0.00 sec)

SHOW TRIGGERS

SHOW TRIGGERS列出了目前被MySQL服務器定義的觸發程序(觸發器)。

SHOW TRIGGERS;

觸發器(trigger)是存儲在數據庫目錄中的一組SQL語句。每當與表相關聯的事件發生時,即會執行或觸發SQL觸發器。例如,當對一個表進行操作插入( insert)、刪除(delete)、更新( update)時就會激活它執行。

觸發器創建語法四要素:

  1. 監視地點 (table)
  2. 監視事件 (insert/update/delete)
  3. 觸發時間 (after/before)
  4. 觸發事件 (insert/update/delete)

SHOW VARIABLES

SHOW VARIABLES;
SHOW GLOBAL VARIABLES;
SHOW SESSION VARIABLES;
SHOW VARIABLES LIKE 'have%';

SHOW WARNINGS

顯示由上一個生成消息的語句導致的錯誤、警告和注意消息。
如果上一個使用表的語句未生成消息,則什麼也不顯示。
SHOW ERRORS是其相關語句,只顯示錯誤。

SHOW COUNT(*) WARNINGS;
SHOW WARNINGS;

Reference

https://dev.mysql.com/doc/refman/5.7/en/show.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章