有两种杀死语句:杀死查询和杀死突变
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
列,该列可以采用以下值:
finished
– 查询成功终止。
waiting
– 在发送终止信号后等待查询结束。
其他值解释了为什么无法停止查询。
测试查询 ( TEST
) 仅检查用户的权限并显示要停止的查询列表。
KILL MUTATION [ON CLUSTER cluster] WHERE <where expression to SELECT FROM system.mutations query> [TEST] [FORMAT format]
尝试取消和删除当前正在执行的突变。使用查询子句system.mutations
指定的过滤器从表中选择要取消的突变。WHERE
KILL
测试查询 ( 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/
最新评论: