mysql的show status如何查看某个select查询扫描了多少行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql的show status如何查看某个select查询扫描了多少行相关的知识,希望对你有一定的参考价值。

mysql 客户端连接成功后,通过show [session|global]status 命令可以提供服务器状态信息,也可以在操作系统上使用mysqladmin extended-status 命令获得这些消息。show[session|global] status 可以根据需要加上参数“session”或者“global”来显示session 级(当前连接)的统计结果和global 级(自数据库上次启动至今)的统计结果。如果不写,默认使用参数是“session”。
下面的命令显示了当前session 中所有统计参数的值:
mysql> show status like 'Com_%';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| Com_admin_commands | 0 |
| Com_alter_db | 0 |
| Com_alter_event | 0 |
| Com_alter_table | 0 |
| Com_analyze | 0 |
| Com_backup_table | 0 |
| Com_begin | 0 |
| Com_change_db | 1 |
| Com_change_master | 0 |
| Com_check | 0 |
| Com_checksum | 0 |
| Com_commit | 0 |
……
Com_xxx 表示每个xxx 语句执行的次数,我们通常比较关心的是以下几个统计参数。
 Com_select:执行select 操作的次数,一次查询只累加1。
 Com_insert:执行INSERT 操作的次数,对于批量插入的INSERT 操作,只累加一次。
 Com_update:执行UPDATE 操作的次数。
 Com_delete:执行DELETE 操作的次数。
上面这些参数对于所有存储引擎的表操作都会进行累计。下面这几个参数只是针对InnoDB 存储引擎的,累加的算法也略有不同。
 Innodb_rows_read:select 查询返回的行数。
 Innodb_rows_inserted:执行INSERT 操作插入的行数。
 Innodb_rows_updated:执行UPDATE 操作更新的行数。
 Innodb_rows_deleted:执行DELETE 操作删除的行数。
通过以上几个参数,可以很容易地了解当前数据库的应用是以插入更新为主还是以查询操作为主,以及各种类型的SQL 大致的执行比例是多少。对于更新操作的计数,是对执行次数的计数,不论提交还是回滚都会进行累加。
对于事务型的应用,通过Com_commit 和Com_rollback 可以了解事务提交和回滚的情况,对于回滚操作非常频繁的数据库,可能意味着应用编写存在问题。
此外,以下几个参数便于用户了解数据库的基本情况。
 Connections:试图连接MySQL 服务器的次数。
 Uptime:服务器工作时间。
 Slow_queries:慢查询的次数。
参考技术A 用 EXPLAIN 然后 你的sql 语句 参考技术B 用 EXPLAIN 然后 你的sql 语句

以上是关于mysql的show status如何查看某个select查询扫描了多少行的主要内容,如果未能解决你的问题,请参考以下文章

MySQL-5.6.34通过show global status like 来查看sql语句的执行情

使用 SHOW STATUS 查看mysql 服务器状态信息

如何查看mysql中表的锁定情况

mysql 查看存储引擎的状态 show engine innodb status 详解

MySQL运行状态show status详解

mysql-5.7 show engine innodb status 详解