开启掘金成长之旅!这是我参与「掘金日新计划 · 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的时候客户端会马上返回结果,但具体什么时候执行合并操作,没有通知
你以为结束了
下一篇我们继续挖坑
大家看完发现有什么错误,写在下面吧!跟我黑虎阿福比划比划!