功能版本说明
- 当 PolarDB-X 版本号小于 5.1.28-1408022 时,PolarDB-X 仅支持物理连接的 SHOW PROCESSLIST 与 KILL 功能,请继续阅读此文档。
- 当 PolarDB-X 版本号大于等于 5.1.28-1408022 时,PolarDB-X 支持逻辑连接与物理连接的 SHOW PROCESSLIST 与 KILL 功能,请参见SHOW PROCESSLIST 指令与 KILL 指令。
获取 PolarDB-X 版本号,PolarDB-X 自助升级的方法以及更多的版本介绍请参见版本说明文档。
SHOW PROCESSLIST 指令
PolarDB-X 中,可以使用SHOW PROCESSLIST
指令查看底层所有 RDS MySQL 上正在执行的 SQL 信息。
语法:
- SHOW [FULL] PROCESSLIST
当 SQL 比较长的时候,SHOW PROCESSLIST
会截断,这时可以使用SHOW FULL PROCESSLIST
获取完整 SQL。
返回结果中每一列的含义与 MySQL 的SHOW PROCESSLIST
指令等价,请参见SHOW PROCESSLIST Syntax。
示例:
- mysql> SHOW PROCESSLIST\G
- ***************************1. row ***************************
- ID:0-0-521414
- USER: tddl5
- DB: tddl5_00
- COMMAND:Query
- TIME:0
- STATE: init
- INFO: show processlist
- ROWS_SENT: NULL
- ROWS_EXAMINED: NULL
- ROWS_READ: NULL
- ***************************2. row ***************************
- ID:0-0-521570
- USER: tddl5
- DB: tddl5_00
- COMMAND:Query
- TIME:0
- STATE:User sleep
- INFO:/*DRDS /88.88.88.88/b67a0e4d8800000/ */select sleep(1000)
- ROWS_SENT: NULL
- ROWS_EXAMINED: NULL
- ROWS_READ: NULL
- 2 rows inset(0.01 sec)
KILL 指令
KILL 指令用于终止一个正在执行的 SQL。
PolarDB-X 使用 PolarDB-X 在 MySQL/RDS 上创建的用户名连接 MySQL/RDS,所以一般直接连接 RDS MySQL 是没有权限对 PolarDB-X 发起的请求进行 KILL 操作的。
如果需要终止一个 PolarDB-X 上正在执行的 SQL,需要使用 MySQL 命令行、DMS 等工具连接 PolarDB-X,在 PolarDB-X 上执行 KILL 指令。
语法:
- KILL 'PROCESS_ID'|'ALL'
有两种用法:
- 终止一个特定的 SQL:
KILL 'PROCESS_ID'
其中的 PROCESS_ID 来自SHOW PROCESSLIST
指令返回的 ID 列。
注意:与 MySQL 不同,PolarDB-X 返回的 ID 列为一个字符串,并非一个数字,因此 KILL 指令中,PROCESS_ID 需要使用单引号括起来。
示例:
- mysql> KILL '0-0-521570';
- Query OK,0 rows affected (0.01 sec)
- 终止当前库上所有通过 PolarDB-X 执行的 SQL:
KILL 'ALL'
当底层 RDS MySQL 因为一些 SQL 导致压力非常大的时候,可以使用KILL 'ALL'
指令终止当前 PolarDB-X 库上所有正在执行的 SQL。符合以下条件的 PROCESS 会被KILL 'ALL'
指令终止:
- 该 PROCESS 的 User 是 PolarDB-X 在 RDS MySQL 上所创建的用户名;
- 该 PROCESS 正在执行查询,即 COMMAND 为 Query。
- 注意:较低版本的 PolarDB-X 实例不支持
KILL 'ALL'
功能,执行的时候会报错。可以将 PolarDB-X 实例升级到最新版本,升级方法请参见升级实例版本。