全部产品

老版本SHOW PROCESSLIST指令与KILL指令

更新时间:2020-08-17 14:04:44

功能版本说明

  1. 当 PolarDB-X 版本号小于 5.1.28-1408022 时,PolarDB-X 仅支持物理连接的 SHOW PROCESSLIST 与 KILL 功能,请继续阅读此文档。
  2. 当 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 信息。

语法:

  1. SHOW [FULL] PROCESSLIST

当 SQL 比较长的时候,SHOW PROCESSLIST会截断,这时可以使用SHOW FULL PROCESSLIST获取完整 SQL。

返回结果中每一列的含义与 MySQL 的SHOW PROCESSLIST指令等价,请参见SHOW PROCESSLIST Syntax

示例:

  1. mysql> SHOW PROCESSLIST\G
  2. *************************** 1. row ***************************
  3. ID: 0-0-521414
  4. USER: tddl5
  5. DB: tddl5_00
  6. COMMAND: Query
  7. TIME: 0
  8. STATE: init
  9. INFO: show processlist
  10. ROWS_SENT: NULL
  11. ROWS_EXAMINED: NULL
  12. ROWS_READ: NULL
  13. *************************** 2. row ***************************
  14. ID: 0-0-521570
  15. USER: tddl5
  16. DB: tddl5_00
  17. COMMAND: Query
  18. TIME: 0
  19. STATE: User sleep
  20. INFO: /*DRDS /88.88.88.88/b67a0e4d8800000/ */ select sleep(1000)
  21. ROWS_SENT: NULL
  22. ROWS_EXAMINED: NULL
  23. ROWS_READ: NULL
  24. 2 rows in set (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 指令。

语法:

  1. KILL 'PROCESS_ID' | 'ALL'

有两种用法:

  1. 终止一个特定的 SQL:KILL 'PROCESS_ID'

    其中的 PROCESS_ID 来自SHOW PROCESSLIST指令返回的 ID 列。

    注意:与 MySQL 不同,PolarDB-X 返回的 ID 列为一个字符串,并非一个数字,因此 KILL 指令中,PROCESS_ID 需要使用单引号括起来。

    示例:

    1. mysql> KILL '0-0-521570';
    2. Query OK, 0 rows affected (0.01 sec)
  2. 终止当前库上所有通过 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 实例升级到最新版本,升级方法请参见升级实例版本