ClickHouse 基础参数优化

2023-04-24 15:01:20 浏览数 (2)

靠谱 users.xml profile

代码语言:javascript复制
M(UInt64, replication_alter_partitions_sync, 1, "Wait for actions to manipulate the partitions. 0 - do not wait, 1 - wait for execution only of itself, 2 - wait for everyone.", 0) 
M(Int64, replication_wait_for_inactive_replica_timeout, 120, "Wait for inactive replica to execute ALTER/OPTIMIZE. Time in seconds, 0 - do not wait, negative - wait for unlimited time.", 0) 




insert_deduplicate 数据复制表引擎中 数据块被重复数据删除。对于同一数据块的多次写入(相同大小的数据块包含相同顺序的相同行),该块只被写入一次。这样做的原因是当客户端应用程序不知道数据是否已写入数据库时发生网络故障,因此可以简单地重复 INSERT 查询。将相同数据发送到哪个副本 INSERT 并不重要。INSERT 是幂等的。重复数据删除参数由 merge_tree 服务器设置控制。 insert_deduplicate 对于复制表中的 INSERT 查询,指定应执行插入块的重复数据删除。 默认是启用去重,日志会出现Block with ID xx already exists locally as part xx ; ignoring it


max_insert_threads 执行INSERT SELECT查询的最大线程数。 值为0或1表示INSERT SELECT不是并行运行的。 更高的值将导致更高的内存使用。 只有当SELECT部分是并行运行时,并行INSERT SELECT才有效,请参阅’max_threads’设置。

parallel_distributed_insert_select 在同一个集群中,在每个shard的本地表上处理分布式的INSERT SELECT查询; 如果设置为1 -在每个shard上执行SELECT; 如果设置为2,则在每个shard上执行SELECT和INSERT

insert_distributed_sync 默认情况下,向Distributed表中插入数据时,ClickHouse 服务器以异步方式向集群节点发送数据。当 时insert_distributed_sync=1,数据是同步处理的,只有在所有分片上保存所有数据(如果为真INSERT,每个分片至少有一个副本),操作成功。

async_insert_threads 在后台实际解析和插入数据的最大线程数。0表示禁用异步模式

async_insert 如果为true, INSERT查询中的数据将存储在队列中,然后在后台刷新到表中。只有通过HTTP协议插入才有意义。如果wait_for_async_insert为false,则INSERT查询几乎立即被处理,否则客户端将等待数据刷新到表中

wait_for_async_insert如果为真,则等待异步插入处理

0 人点赞