首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >优化表不会在表突变后立即运行。

优化表不会在表突变后立即运行。
EN

Stack Overflow用户
提问于 2020-02-07 14:42:29
回答 1查看 950关注 0票数 0

我正在更新一个具有如下表突变的表:

代码语言:javascript
复制
ALTER TABLE T1 
UPDATE column1 = replaceAll('X', 'Y')

在此之后,我将使用这样的optimize-final命令与clickhouse-client一起发送:

代码语言:javascript
复制
OPTIMIZE TABLE T1 FINAL

Ok.

0 rows in set. Elapsed: 0.002 sec.

但是它立即返回(0.002 sec.),我可以看到行还没有更新。

几秒钟后(10-50),我再次运行optimize-final命令,但这一次它挂起,直到对表进行优化。

这是optimize-final的预期行为吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-07 17:05:28

--我可以看到行还没有更新。

ALTER TABLE T1 UPDATE --异步

你应该检查select count() from system.mutations where not is_done;,你的突变已经完成了。

在下一个版本中,您可以同步运行突变ALTER TABLE T1 UPDATE column1 = replaceAll('X', 'Y') SETTINGS mutations_sync = 2

mutations_sync,0,“等待ALTER /DELETE查询(突变)的同步执行。0-异步执行。1-等待当前服务器。2-等待所有副本,如果它们存在的话。

优化表T1终版

优化-- merge与突变无关。

集合

0行。经过: 0.002秒。

在某些情况下,OPTIMIZE无法启动并立即返回

使用optimize_throw_if_noop找出原因

代码语言:javascript
复制
set optimize_throw_if_noop = 1;
OPTIMIZE TABLE T1 FINAL;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60115617

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档