略微加速

略速 - 互联网笔记

Clickhouse KILL杀死语句

2022-09-23 leiting (4397阅读)

标签 数据库

杀死语句

有两种杀死语句:杀死查询和杀死突变

杀死 QUERY

KILL QUERY [ON CLUSTER cluster]
  WHERE <where expression to SELECT FROM system.processes query>
  [SYNC|ASYNC|TEST]
  [FORMAT format]

尝试强制终止当前正在运行的查询。WHERE使用查询子句中定义的标准从 system.processes 表中选择要终止的KILL查询。

例子:

-- Forcibly terminates all queries with the specified query_id:
KILL QUERY WHERE query_id='2-857d-4a57-9ee0-327da5d60a90'

-- Synchronously terminates all queries run by 'username':
KILL QUERY WHERE user='username' SYNC

只读用户只能停止他们自己的查询。

默认情况下,使用异步版本的查询 ( ASYNC),它不会等待确认查询已停止。

同步版本 ( SYNC) 等待所有查询停止,并在每个进程停止时显示有关它的信息。响应包含kill_status列,该列可以采用以下值:

  1. finished– 查询成功终止。

  2. waiting– 在发送终止信号后等待查询结束。

  3. 其他值解释了为什么无法停止查询。

测试查询 ( TEST) 仅检查用户的权限并显示要停止的查询列表。

杀死 MUTATION

KILL MUTATION [ON CLUSTER cluster]
  WHERE <where expression to SELECT FROM system.mutations query>
  [TEST]
  [FORMAT format]

尝试取消和删除当前正在执行的突变。使用查询子句system.mutations指定的过滤器从表中选择要取消的突变。WHEREKILL

测试查询 ( TEST) 仅检查用户的权限并显示要停止的突变列表。

例子:

-- Cancel and remove all mutations of the single table:
KILL MUTATION WHERE database = 'default' AND table = 'table'

-- Cancel the specific mutation:
KILL MUTATION WHERE database = 'default' AND table = 'table' AND mutation_id = 'mutation_3.txt'

当突变被卡住并且无法完成时(例如,如果突变查询中的某些函数在应用于表中包含的数据时抛出异常),该查询很有用。

突变已经进行的更改不会回滚。


https://clickhouse.com/docs/en/sql-reference/statements/kill/

北京半月雨文化科技有限公司.版权所有 京ICP备12026184号-3