文章目录

  • SHOW命令介绍
  • - SHOW命令用法
  • 常用SHOW命令汇总
  • 常用命令汇总表
  • - 服务器运行状态信息
  • - 支持的字符集信息
  • - 支持的校对规则信息
  • - 上一个执行语句的告警信息
  • - 上一个执行语句的错误信息
  • - 服务器线程信息
  • - 用户权限信息
  • - 支持的权限列表
  • - 二进制日志文件列表
  • - 主库二进制日志文件列表
  • - 系统变量信息
  • - 主服务器状态信息
  • - 从服务器状态信息
  • - 从服务器HOST列表
  • - SQL性能分析
  • - 支持的存储引擎列表
  • - 指定存储引擎状态
  • - 指定存储引擎互斥参数
  • - 数据库名称集合
  • - 数据库构建信息
  • - 数据库中表名称
  • - 表的构建语句
  • - 数据库的所有表的状态信息
  • - 表的所有列信息
  • - 指定表的所有索引信息
  • - 已经在表缓存中打开的非临时表信息
  • - 指定数据库的所有触发器信息
  • - 指定数据库中的所有事件信息
  • - 创建触发器语句
  • - 创建事件语句
  • - 创建函数语句
  • - 创建存储函数语句
  • - 创建用户语句
  • - 创建视图语句



SHOW命令介绍

MySQL SHOW命令主要用于显示数据库、表、列、用户、权限等的信息。这些信息被MySQL存储在数据库的表中,MySQL从内部表中提取这些信息。

- SHOW命令用法

  • SHOW命令结合LIKE关键字对结果进行过滤:表示对第一个字段进行过滤
  • SHOW命令结合WHERE关键字对结果进行过滤:用法和正常的SELETE语句等相同

常用SHOW命令汇总

常用命令汇总表

命令                    

描述

show status

显示服务器运行状态信息(如正在运行的线程数量)

show character set

显示服务器支持的所有字符集

show collation

显示服务器支持的所有校对规则

show warnings

显示最后一个执行的语句的告警信息(包括:错误、警告和注意信息)

show errors

显示最后一个执行的语句的错误信息

show processlist

显示系统正在运行的所有线程信息

show grants [for user_name]

显示用户权限

show privileges

显示服务器支持的权限列表

show binary logs

显示二进制列表信息

show master logs

显示主库的二进制列表信息(单体数据库中与show binary logs相同)

show [global | session] variables

显示全局(会话)系统变量信息,默认会话

show master status

显示主服务器的状态信息

show slave status

显示从服务器的状态信息

show slave hosts

显示从服务器列表信息

show profiles

显示最近15条SQL性能分析信息

show profile [参数1,参数2] for query [Query_ID]

显示指定Query_ID的SQL性能分析详情

show engines

显示服务器支持的存储引擎列表

show engine engine_name status

显示存储引擎状态

show engine engine_name mutex

显示存储引擎互斥参数

show databases

显示所有数据库名称

show create database db_name

显示数据库的构建语句

show tables [from db_name]

显示数据库中所有表名称

show create table table_name

显示表的构建语句

show table status [form db_name]

显示数据库所有表的状态信息

show columns from table_name

显示当前数据库的指定表的所有列信息

show columns from db_name.table_name

show columns from table_name from db_name

显示指定数据库的指定表的所有列信息

show fields from table_name

显示当前数据库的指定表的所有列信息

show fields from db_name.table_name

show fields from table_name from db_name

显示指定数据库的指定表的所有列信息

show index from table_name

显示当前数据库的指定表的所有索引信息

show index from db_name.table_name

show index from table_name from db_name

显示指定数据库的指定表的所有索引信息

show keys from table_name

显示当前数据库的指定表的所有索引信息

show keys from db_name.table_name

show keys from table_name from db_name

显示指定数据库的指定表的所有索引信息

show open tables [from db_name]

显示已经在表缓存中打开的非临时表信息

show triggers [from db_name]

显示指定数据库中的所有触发器信息

show events [from db_name]

显示指定数据库中的所有事件信息

show create trigger trig_name

显示创建触发器语句

show create event event_name

显示创建事件语句

show create function func_name

显示创建函数语句

show create procedure proc_name

显示创建存储函数语句

show create user user_name

显示创建用户语句

show create view view_name

显示创建视图语句

- 服务器运行状态信息

show status

mysqld 命令参数 mysqlshow命令_mysqld 命令参数

- 支持的字符集信息

show character set

mysqld 命令参数 mysqlshow命令_mysqld 命令参数_02

- 支持的校对规则信息

show collation

mysqld 命令参数 mysqlshow命令_mysqld 命令参数_03

- 上一个执行语句的告警信息

explain select id from region where id = 9;

show warnings;

mysqld 命令参数 mysqlshow命令_数据库_04


mysqld 命令参数 mysqlshow命令_服务器_05


显示的信息包括:错误、告警、注意。

- 上一个执行语句的错误信息

explain select id from region where id = 9;

show errors;

mysqld 命令参数 mysqlshow命令_数据库_06


mysqld 命令参数 mysqlshow命令_存储引擎_07


与show warnings不同的是:show errors只显示错误信息。

- 服务器线程信息

  • 用户无process权限,只可以查看自己的线程信息
  • 用户有process权限,就可以查看所有的线程信息(包括密码)
  • full关键字显示所有info列的信息,不带关键字full时只显示前100字符。
show  processlist

mysqld 命令参数 mysqlshow命令_mysql_08

- 用户权限信息

1. 查询所有用户信息

select * from mysql.user

mysqld 命令参数 mysqlshow命令_mysqld 命令参数_09


2. 查询当前用户权限

show grants;
或
show grants for current_user();
或
show grants for current_user;

mysqld 命令参数 mysqlshow命令_存储引擎_10

3. 查询指定用户权限

show grants for root;

mysqld 命令参数 mysqlshow命令_服务器_11

- 支持的权限列表

show privileges

mysqld 命令参数 mysqlshow命令_存储引擎_12

- 二进制日志文件列表

show binary logs

mysqld 命令参数 mysqlshow命令_mysql_13

- 主库二进制日志文件列表

show master logs

mysqld 命令参数 mysqlshow命令_数据库_14


show master logs和show binary logs相同。

- 系统变量信息

show variables与show session variables相同,默认查询会话级系统变量信息。

show variables;

show session variables;

show global variables;

mysqld 命令参数 mysqlshow命令_服务器_15

- 主服务器状态信息

show master status

mysqld 命令参数 mysqlshow命令_mysqld 命令参数_16

- 从服务器状态信息

show slave status

mysqld 命令参数 mysqlshow命令_mysql_17

- 从服务器HOST列表

show slave hosts

mysqld 命令参数 mysqlshow命令_mysql_18

- SQL性能分析

使用SQL性能分析需开启性能分析开关。

-- 查询会话性能分析开关是否开启
show variables like 'profiling';

-- 开启会话新能分析开关
set profiling=OFF;

1. 最近15条SQL性能分析信息

show profiles

mysqld 命令参数 mysqlshow命令_数据库_19

  • Duration:耗时

2. 可以修改默认查询条数

set profiling_history_size = 100;

3. 指定Query_ID的SQL性能分析详情

格式:show profile [参数1,参数2] for query [Query_ID]

参数可选值:

  • ALL显示所有信息
  • BLOCK IO显示块输入和输出操作的计数
  • CONTEXT SWITCHES显示自愿和非自愿上下文切换的计数
  • CPU显示用户和系统 CPU 使用时间
  • IPC显示发送和接收的消息计数
  • MEMORY当前未实现
  • PAGE FAULTS显示主要和次要页面错误的计数
  • SOURCE显示源代码中的函数名称,以及发生函数的文件的名称和行号
  • SWAPS显示交换计数
show profile cpu,block io for query 1380;

mysqld 命令参数 mysqlshow命令_存储引擎_20

- 支持的存储引擎列表

show engines

mysqld 命令参数 mysqlshow命令_数据库_21

- 指定存储引擎状态

show engine InnoDB status

mysqld 命令参数 mysqlshow命令_服务器_22

- 指定存储引擎互斥参数

show engine InnoDB mutex

mysqld 命令参数 mysqlshow命令_mysql_23

- 数据库名称集合

show databases

mysqld 命令参数 mysqlshow命令_数据库_24

- 数据库构建信息

show create database demo

mysqld 命令参数 mysqlshow命令_服务器_25

- 数据库中表名称

-- 显示当前数据库中所有表名称
show tables

-- 显示指定数据库中所有表名称
show tables from demo

- 表的构建语句

show create table timed_task

mysqld 命令参数 mysqlshow命令_mysqld 命令参数_26

- 数据库的所有表的状态信息

-- 当前数据库的所有表状态信息
show table status

-- 指定数据库的所有表状态信息
show table status from demo

mysqld 命令参数 mysqlshow命令_数据库_27

- 表的所有列信息

-- 当前数据库指定表所有列信息
show columns from timed_task;

-- 指定数据库指定表所有列信息
show columns from demo.time_table;

-- 指定数据库指定表所有列信息
show columns from time_table from demo;



-- 当前数据库指定表所有列信息
show fields from timed_task;

-- 指定数据库指定表所有列信息
show fields from demo.time_table;

-- 指定数据库指定表所有列信息
show fields from time_table from demo;

mysqld 命令参数 mysqlshow命令_数据库_28

- 指定表的所有索引信息

-- 当前数据库指定表所有索引信息
show index from article;

-- 指定数据库指定表所有索引信息
show index from demo.article;

-- 指定数据库指定表所有索引信息
show index from article from demo;



-- 当前数据库指定表所有索引信息
show keys from article;

-- 指定数据库指定表所有索引信息
show keys from demo.article;

-- 指定数据库指定表所有索引信息
show keys from article from demo;

mysqld 命令参数 mysqlshow命令_存储引擎_29

- 已经在表缓存中打开的非临时表信息

-- 所有数据库中已经在表缓存中打开的非临时表信息
show open tables;

-- 指定数据库中已经在表缓存中打开的非临时表信息
show open tables from demo;

mysqld 命令参数 mysqlshow命令_存储引擎_30

- 指定数据库的所有触发器信息

-- 当前数据库所有触发器信息
show triggers;

-- 指定数据库所有触发器信息
show triggers from demo;

mysqld 命令参数 mysqlshow命令_存储引擎_31

- 指定数据库中的所有事件信息

-- 当前数据库所有事件信息
show events;

-- 指定数据库所有事件信息
show events from demo;

mysqld 命令参数 mysqlshow命令_服务器_32

- 创建触发器语句

show create trigger trigger1

- 创建事件语句

show create event add_partition_every_month

mysqld 命令参数 mysqlshow命令_mysql_33

- 创建函数语句

show create function currval

mysqld 命令参数 mysqlshow命令_mysql_34

- 创建存储函数语句

show create procedure create_partition_by_month

mysqld 命令参数 mysqlshow命令_数据库_35

- 创建用户语句

show create user root

mysqld 命令参数 mysqlshow命令_存储引擎_36

- 创建视图语句

show create view article_view

mysqld 命令参数 mysqlshow命令_服务器_37