类create,but
ATTACH TABLE [IF NOT EXISTS] [db.]name [ON CLUSTER cluster]
在启动服务器时使用,服务器将表元数据视为文件保存
1、检查表中的数据是否被破坏,对比文件实际大小与服务器上存储的期望大小,如果不匹配意味被破坏
2、返回boolean的独立行,0破坏 1完整
3、支持log、tinylog、stripelog引擎,这些引擎不能自动修复
避免数据丢失推荐使用mergetree
如果数据被破坏:
1、创建和被损坏表一样结构的新表
CREATE TABLE
2、将max_threads值设置为1,以便在单个线程中处理下一个查询SET max_threads = 1
3、INSERT INTO
4、重启clickhouse-client,使max_threads起作用
DESC|DESCRIBE TABLE [db.]table [INTO OUTFILE filename] [FORMAT format]
返回string类型的两列数据:name type指明操作表的列的名字和类型
嵌套表结构输出到扩展格式中,每列用被逗号隔开的名字独立显示
DETACH TABLE [IF EXISTS] [db.]name [ON CLUSTER cluster]
删除服务器上指定表的表信息,服务器将不知道表的存在,不删除表的数据
服务器重启时会再次找到这个表,相似的、可使用attach重新附加分离的表(系统表除外,无元数据)
DROP DATABASE [IF EXISTS] db [ON CLUSTER cluster]
DROP [TEMPORARY] TABLE [IF EXISTS] [db.]name [ON CLUSTER cluster]
EXISTS [TEMPORARY] TABLE [db.]name [INTO OUTFILE filename] [FORMAT format]
返回UInt-8类型的列,0 表、库不存在,1表存在于指定的库中
KILL QUERY [ON CLUSTER cluster]
WHERE
[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 TABLE [db.]name [ON CLUSTER cluster] [PARTITION partition] [FINAL]
引擎做优化,仅*MergeTree支持(请求初始化不定期对数据合并)指定分区则仅分区用户
不能修复too many parts 的error
RENAME TABLE [db11.]name11 TO [db12.]name12, [db21.]name21 TO [db22.]name22, ... [ON CLUSTER cluster]
全局锁,指定的数据库其目录须位于相同的文件系统中(否则,将返回错误)
SET param = value 属性设置,global全局设置(新的会话起作用),服务器重启全局设置失效建议写到配置文件中
SHOW CREATE [TEMPORARY] TABLE [db.]table [INTO OUTFILE filename] [FORMAT format]
SHOW DATABASES
SHOW DATABASES [INTO OUTFILE filename] [FORMAT format]
SHOW PROCESSLIST [INTO OUTFILE filename] [FORMAT format]
user:谁发起的请求,address从哪里发来的,elapsed毫秒,