一、mysql show命令简介

  mysql数据库中show命令是一个非常实用的命令,SHOW命令用于显示MySQL数据库中的信息。它可以用于显示数据库、表、列、索引和用户等各种对象的信息。我们常用的有show databases,show tables,show full processlist等,实际上可以使用的还有很多,实际上包括三十多个子命令,加上可选参数可以查看的数据库信息就更多了。此博文以示例的方式介绍mysql show命令,博文的实验环境如下:

  • 操作系统:centos7.6
  • 数据库版本:mysql5.7.26

二、最常用show命令使用示例

1、查看数据库列表

  我们用得最多的就是show databases了,可以查看数据库列表,如果是root用户可以看到所有的数据库,如果是普通用户只可以看到自己有权限的库和information_schema库。

2、查看数据库连接进程

  show processlist可以查看数据库连接进程,full是可选项,区别是show显示前100个线程,show full显示所有的。这个命令root用户和普通用户都可以执行,区别就是root用户可以看到所有用户的连接信息,普通用户只能看到该用户的。连接信息中有进程ID、用户名、连接源地址和端口号、连接的数据库、命令状态、连接时间、执行状态、执行的命令明细。show processlist常用于出现锁的情况下查询进程ID,然后手动kill ID后解锁。

3、查看表列表

  show tables用于查看库下的表列表,需要先进入某库后才可以执行。当然我们也可以使用show tables from db_name,查看某库的数据表,前提是有权限查看。

4、查看表结构

  使用SHOW CREATE TABLE tbl_name可以查看某表的表结构,常用于需要确认表信息,在修改表结构前常用到。

5、查看变量信息

  显示MySQL服务器的配置变量的值,这个命令常在排查问题的时候用到,用于查看mysql实例的参数配置,经常结合like一起使用,用于过滤指定参数。可以使用show global variables或者show session variables查看全局或者会话参数,默认是查看会话参数。

6、查看数据表的索引信息

  如果我们需要查看某表都创建了哪些索引可以使用show index from table_name的方式查看,默认有主键索引,如果还创建了其他索引通过此方式都可以看到。

7、查看某用户的权限

  使用show grants for user@host 可以查看用户的授权,如果用户的host是任意源可以省略;也可以直接输入show grants查看当前用户的权限。

8、获取show命令帮助

三、需要特权执行的show命令使用示例

  如下show命令执行都需要特权,非普通用户可以执行。

1、查看主从状态

  如果搭建了mysql的主从模式,我们需要检查主从状态就可以使用此命令。如果配置了master或者slave角色就可以看到主从状态信息,否则为空。

2、查看从节点主机信息

3、查看二进制日志位置

4、查看binlog日志事件

四、其他show命令使用示例

1、查看可用字符集

2、查看显示可用的字符校对规则

3、查看某库某表的所有列

4、查看数据库创建信息

  使用show create 可以查看创建数据库、事件、函数、存储过程、触发器、视图等的信息,需要对应的名称。

5、查看最近事件

6、查看最近告警

7、查看最近错误

8、查看引擎状态

  查看innodb引擎状态,

9、查看已安装的插件

10、查看数据库表状态

  查看数据库表状态,这个在进行单个表备份还原的时候还是非常有用的,通过查看表的最后更新时间,我们可以选择对应日期的备份文件进行还原,在需要对表进行业务操作的时候,也可以通过分析协助判断什么时间进行数据库操作比较合适。

11、查看所有打开的表

12、查看数据库触发器

  我们可以通过show triggers查看所有触发器,也可以show triggers from db_name查看指定数据库的触发器。

13、查看函数或者存储过程状态

14、使用profile语句分析sql性能

  我们可以使用profile语句分析需要执行的sql执行的性能情况,可以看到sql执行的各阶段的资源消耗,SHOW PROFILE语句支持选择ALL、CPU、BLOCK IO、CONTEXT SWITCH和PAGE FAULTS等来查看具体的明细信息。不过此功能即将被淘汰,在新版本中通过Performance Schema库来分析资源消耗和使用情况。

五、show status常用参数说明

  使用SHOW STATUS语句能够获取MySQL服务器的一些状态信息,这些状态信息主要是MySQL数据库的性能参数。SHOW STATUS语句的语法格式如下:

  其中,SESSION表示获取当前会话级别的性能参数,GLOBAL表示获取全局级别的性能参数,并且SESSION和GLOBAL可以省略,如果省略不写,默认为SESSION。status_name表示查询的参数值。熟练掌握这些参数的使用,能够更好地了解SQL语句的执行频率。常用参数说明如下:

09-06 04:53