我正在更新一个具有如下表突变的表:
ALTER TABLE T1
UPDATE column1 = replaceAll('X', 'Y')在此之后,我将使用这样的optimize-final命令与clickhouse-client一起发送:
OPTIMIZE TABLE T1 FINAL
Ok.
0 rows in set. Elapsed: 0.002 sec.但是它立即返回(0.002 sec.),我可以看到行还没有更新。
几秒钟后(10-50),我再次运行optimize-final命令,但这一次它挂起,直到对表进行优化。
这是optimize-final的预期行为吗?
发布于 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找出原因
set optimize_throw_if_noop = 1;
OPTIMIZE TABLE T1 FINAL;https://stackoverflow.com/questions/60115617
复制相似问题