
# 修改ClickHouse参数配置对集群进行性能调优
创建完ClickHouse集群后，用户可以通过修改参数配置，对集群进行性能调优。
#### 使用限制
- 修改集群静态参数时，需要重启集群，可能会导致业务中断，请在业务低峰时期进行此操作。
- 集群无其他任务（如数据迁移、扩容）进行时，才可以修改参数配置。
- 集群重启过程中，不允许修改参数配置。
- 参数配置只支持存算一体架构。
 
#### 修改ClickHouse参数步骤
1. 登录[表格存储服务控制台](https://console.huaweicloud.com/cloudtable)。
2. 左上角选择区域。
3. 进入"集群管理"页面，在集群列表中单击目标集群"集群名称 \> 参数配置"，进入"参数配置"页面。
4. 单击"参数配置"页签，进入"参数配置"页签。
5. 选择修改的节点，单击目标参数的"参数值"列![](https://support.huaweicloud.com/usermanual-cloudtable/zh-cn_image_0000002342704296.png "点击放大")。
6. 在修改框中输入新值，单击![](https://support.huaweicloud.com/usermanual-cloudtable/zh-cn_image_0000002342544496.jpg)，系统提示"参数修改为' xx '成功，请保存本次修改值"，并且修改的参数值后显示红色\*。
   
   如果单击![](https://support.huaweicloud.com/usermanual-cloudtable/zh-cn_image_0000002342704300.jpg)，则取消修改。
   
   
7. 单击参数列表左上方的"保存修改"，弹出"保存修改"对话框。
8. 在"保存修改"对话框中，确认参数修改信息正确后，然后单击"确定"。 
   - 单击确定后，再单击右上角的刷新按钮![](https://support.huaweicloud.com/usermanual-cloudtable/zh-cn_image_0000002342544500.png "点击放大")，如果参数表状态显示"已生效"，集群不用重启。如果显示"未生效"，用户需要手动重启集群才能使修改的参数生效。
   
   - 单击参数配置页签左上角的重启按钮，集群重启或者返回集群列表页面重启集群。
   
   - 如果修改的参数值不正确，可以在"保存修改"对话框中单击"一键还原"，取消修改参数值。
   
   
   
   
9. 参数修改完成后，可以单击"修改历史"页签查看参数修改的历史。"修改历史"页面中显示如下信息。 
   表1参数说明 
   | 参数   | 参数说明          |
   |:---|:---|
   | 参数名  | 被修改过的参数名。     |
   | 旧值   | 修改前的参数值。      |
   | 新值   | 修改后的参数值。      |
   | 修改时间 | 记录用户修改参数值的时间。 |
      
   
   
 
#### ClickHouse参数状态
表2状态 
| 状态   | 状态说明                                                                                                                                                                                                                                                                                            |
|:---|:---|
| 未更改  | ClickHouse未更改的参数。                                                                                                                                                                                                                                                                               |
| 未应用  | ClickHouse参数已修改但是未应用。                                                                                                                                                                                                                                                                           |
| 应用中  | ClickHouse静态参数，修改保存后需要重启集群。                                                                                                                                                                                                                                                                     |
| 已应用  | ClickHouse参数修改后已生效： - 静态参数修改保存后，集群需要重启才能生效。  - 动态参数修改保存后生效。   |
| 应用失败 | ClickHouse参数修改后应用失败。                                                                                                                                                                                                                                                                            |
   
#### 参数说明
表3Server节点参数 
| 参数名                        | 静态参数 | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|
| background_pool_size       | 否    | - 参数类型：int  - 参数范围\[16,256\]  - 参数默认值：16  - 描述：MergeTree引擎表的后台合并和变更的线程数。您只能在运行时增加线程数。要降低线程数，您必须重新启动服务器。通过调整此设置，您可以管理CPU和磁盘负载。较小的池大小会利用较少的CPU和磁盘资源，但后台进程的推进速度较慢，这可能最终会影响查询性能。                                                                                  |
| max_insert_threads         | 否    | - 参数类型：int  - 参数范围\[0,256\]  - 参数默认值：0  - 描述：执行INSERT SELECT查询的最大线程数。并行INSERT SELECT仅在SELECT部分并行执行时有效，较高的值将导致更高的内存使用。                                                                                                                                          |
| max_memory_usage_for_user  | 否    | - 参数类型：long  - 单位：Byte  - 参数范围：\[0,274877906944‬\]  - 参数默认值：0  - 描述：在单台服务器上执行用户查询时可使用的最大RAM量。零表示无限制。                                                                                       |
| max_memory_usage           | 否    | - 参数类型：long  - 单位：Byte  - 参数范围：\[0,274877906944‬\]  - 参数默认值：0  - 描述：在单台服务器上执行查询时可使用的最大RAM量。 0的值表示无限制。                                                                         |
| distributed_product_mode   | 否    | - 参数类型：enum  - 参数范围：\[deny,local,global,allow\]  - 参数默认值：deny  - 描述：当分布式表的查询包含非GLOBAL子查询时使用。deny--- 默认值。禁止使用这些类型的子查询（返回"禁止双重分布式IN/JOIN子查询"异常）。local--- 将子查询中的数据库和表替换为目标服务器（分片）的本地表，保留正常的IN/JOIN。global--- 将IN/JOIN查询替换为GLOBAL IN/GLOBAL JOIN。allow--- 允许使用这些类型的子查询。   |
| max_partition_size_to_drop | 否    | - 参数类型：long  - 单位：Byte  - 参数范围：\[0,9223372036854775807\]  - 参数默认值：50000000000  - 描述：删除分区的大小限制。值为0的意思是您可以删除所有分区而没有任何限制。                                                       |
| max_table_size_to_drop     | 否    | - 参数类型：long  - 单位：Byte  - 参数范围：\[0,9223372036854775807\]  - 参数默认值：50000000000  - 描述：删除表的大小限制。值为0的意思是您可以删除所有表而没有任何限制。                                                         |
   
