attach

类create,but

  • 不在硬盘上创建表,假设表已经存在只是向服务添加表的说明,执行之后,服务将知道表的存在
ATTACH TABLE [IF NOT EXISTS] [db.]name [ON CLUSTER cluster]

在启动服务器时使用,服务器将表元数据视为文件保存

 

check table

1、检查表中的数据是否被破坏,对比文件实际大小与服务器上存储的期望大小,如果不匹配意味被破坏

2、返回boolean的独立行,0破坏 1完整

3、支持log、tinylog、stripelog引擎,这些引擎不能自动修复

避免数据丢失推荐使用mergetree

如果数据被破坏:

1、创建和被损坏表一样结构的新表

CREATE TABLE <new_table_name> AS <damaged_table_name>

2、将max_threads值设置为1,以便在单个线程中处理下一个查询SET max_threads = 1

3、INSERT INTO <new_table_name> SELECT * FROM <damaged_table_name>只有被破坏前的数据被copy

4、重启clickhouse-client,使max_threads起作用

 

describe table

DESC|DESCRIBE TABLE [db.]table [INTO OUTFILE filename] [FORMAT format]

返回string类型的两列数据:name type指明操作表的列的名字和类型

嵌套表结构输出到扩展格式中,每列用被逗号隔开的名字独立显示

 

detach

DETACH TABLE [IF EXISTS] [db.]name [ON CLUSTER cluster]

删除服务器上指定表的表信息,服务器将不知道表的存在,不删除表的数据

服务器重启时会再次找到这个表,相似的、可使用attach重新附加分离的表(系统表除外,无元数据)

 

drop:

DROP DATABASE [IF EXISTS] db [ON CLUSTER cluster]
DROP [TEMPORARY] TABLE [IF EXISTS] [db.]name [ON CLUSTER cluster]

 

exists

EXISTS [TEMPORARY] TABLE [db.]name [INTO OUTFILE filename] [FORMAT format]

返回UInt-8类型的列,0 表、库不存在,1表存在于指定的库中

 

kill query

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

试图强制终止正在执行的请求,从系统中选择要终止的查询。使用KILL查询的WHERE子句中定义的条件处理表

KILL QUERY WHERE query_id='2-857d-4a57-9ee0-327da5d60a90'
KILL QUERY WHERE user='username' SYNC

只读权限的用户只能停止自己的请求

同步返回kill_status的状态:finished、waiting、reason

 

optimize:


OPTIMIZE TABLE [db.]name [ON CLUSTER cluster] [PARTITION partition] [FINAL]


引擎做优化,仅*MergeTree支持(请求初始化不定期对数据合并)指定分区则仅分区用户

 

不能修复too many parts 的error

 

rename

RENAME TABLE [db11.]name11 TO [db12.]name12, [db21.]name21 TO [db22.]name22, ... [ON CLUSTER cluster]

全局锁,指定的数据库其目录须位于相同的文件系统中(否则,将返回错误)

 

set


SET param = value 属性设置,global全局设置(新的会话起作用),服务器重启全局设置失效建议写到配置文件中


 

show create table

SHOW CREATE [TEMPORARY] TABLE [db.]table [INTO OUTFILE filename] [FORMAT format]


SHOW DATABASES


SHOW DATABASES [INTO OUTFILE filename] [FORMAT format]

SHOW PROCESSLIST

SHOW PROCESSLIST [INTO OUTFILE filename] [FORMAT format]

user:谁发起的请求,address从哪里发来的,elapsed毫秒,