Clickhouse从入门到入坑(8)

256 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 8 天,点击查看活动详情

生命不息,学习不止

题外话

周三了,有什么大事呢,没错汉堡王周三王国日,但几天有另一个王——詹姆斯,恭喜詹姆斯超越贾巴尔正式加冕NBA历史得分王(某个网上的小黑子:刷子选手,就知道刷分)

我就想说你再去找个nba的刷子,看看能不能刷成这个成就

废话不多说,上货

在这里插入图片描述

SQL语句

继续探索clickhouse的sql相关语句

1.optimize table

optimize table 依赖于表引擎,用于合并未划分在表引擎合并范围内的数据,并通过合并策略来变更合并方式

//优化表
optimize table table_name [partition|final|dedulicate]

partition 这个最好理解,优化表的指定分区,分区以文件的形式存储,会在后面详细讲解,设定为partition只会合并指定的分区

final 会进行全面合并,无论数据是否已经在引擎的合并范围内,会对所有数据进行合并,哪怕有条数据正在执行其他的合并策略也会执行final的这次合并,一个文件块也会触发,就很强硬

dedulicate 翻译过来去重,会在合并的时候对重复数据去重,可以搭配 by xxx 使用,会按照xxx去进行去重,如果没有搭配by,则会按照整条数据完全一致进行去重

其实clickhouse 是有自己的优化机制的,会每隔一段时间自动执行一下optimize,让数据进行合并,但是不排除特殊情况导致一些数据很久不合并

optimize table 则可以强制触发一次合并,但是clickhouse的客户端与服务端通信是异步的,执行optimize table的时候客户端会马上返回结果,但具体什么时候执行合并操作,没有通知

你以为结束了

下一篇我们继续挖坑

在这里插入图片描述

大家看完发现有什么错误,写在下面吧!跟我黑虎阿福比划比划! 在这里插入图片描述