clickhouse调优配置

一、官方文档地址

clickhouse的配置项主要在 config.xml 或 users.xml 中, 基本上都在 users.xml 里

config.xml

https://clickhouse.tech/docs/en/operations/server-configuration-parameters/settings/

users.xml

https://clickhouse.tech/docs/en/operations/settings/settings/

二、建表优化

2.1、数据类型选择:

时间字段使用DateTime类型,不要用字符串,clickhouse底层将DateTIme存为时间戳Long类型,但不建议使用Long类型,DateTime方便用于分区,只需要使用toYYYYMMDD(time)或者toDate(time),便可实现按天分区;
空值存储官方指出Nullable类型会拖累性能,因为存储Nullable列时需要创建一个额外的文件来存储Null值的标记,并且Nullable列无法被索引。可用空字符串或者指定一个业务中无意义的值(例如-1表示无用id);

2.2、分区和索引选择:

分区粒度一般选择按天分区
索引列选择1:查询条件中经常被用来当筛选条件的属性;
2:可以是单一维度,也可以是组合维度的索引;
3:查询频率大的在前;
4:基数特别大的不适合做索引(例如id);

2.3、表参数:

TTL(生命周期)指定TTL可以免去手动删除过期历史数据的麻烦,可以通过alter修改;

三、配置优化

3.1、CPU资源配置:

background_pool_size后台线程池大小,merge线程就是在里这执行,默认16,建议设置为cpu个数的2倍;
background_schedule_pool_size执行后台任务的线程数,默认128,建议设置为cpu个数的2倍;
background_distributed_schedule_pool_size为分布式发送执行后台任务的线程数,默认16,建议改成cpu个数的2倍;
max_concurrent_queries最大并发处理的请求数,默认100,建议150~300;
max_threads单个查询所能使用的最大cpu个数,默认是cpu核数;

3.2、内存资源配置:

max_memory_usage单次query占用内存的最大值,可以设置大一点,提升集群查询性能;
max_bytes_before_external_group_bygroup by使用存储超出该阈值后会刷新到磁盘进行(tmp目录),不设置时超出则报错;
max_bytes_before_external_sortorder by使用内存超出阈值就溢写磁盘,不设置时超出则报错;
max_table_size_to_drop限制删除该数据量以上的分区表,建议修改为0,不限制删除;

四、写入和删除优化:

4.1:尽量不执行单条或小批量的删除和插入操作,会产生小分区文件,merge压力大;
4.2:不要一次写入太多分区,或写入太快(merge跟不上会报错,clickhosue默认使用了WAL提高写入性能的方式来处理);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/69862.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sql:SQL优化知识点记录(十一)

(1)用Show Profile进行sql分析 新的一个优化的方式show Profile 运行一些查询sql: 查看一下我们执行过的sql 显示sql查询声明周期完整的过程: 当执行过程出现了下面这4个中的时,就会有问题导致效率慢 8这个sql创建…

算法训练营第四十一天(9.2)| 动态规划Part11:最长公共子序列

Leecode 1143.最长公共子序列 题目地址:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 题目类型:最长子序列 class Solution { public:int longestCommonSubsequence(string text1, string text2) {int m text1.size(), n t…

搬家快递服务小程序的便利性

在当今快节奏的生活中,搬家可能是很多人都需要面对的问题。无论是新房子还是新办公室,都需要高效、便捷的搬家服务。本文将介绍如何使用第三方小程序制作平台,如乔拓云平台,开发一款高效便捷的搬家服务小程序。 1. 注册登录第三方…

【易售小程序项目】修改“我的”界面前端实现;查看、重新编辑、下架自己发布的商品【后端基于若依管理系统开发】

文章目录 “我的”界面修改效果界面实现界面整体代码 查看已发布商品界面效果商品数据表后端上架、下架商品ControllerMapper 界面整体代码back方法 编辑商品、商品发布、保存草稿后端商品校验方法Controller 页面整体代码 同项目其他文章 “我的”界面修改 效果 界面实现 界…

【C++设计模式】详解装饰模式

2023年8月31日,周四上午 这是我目前碰到的最难的设计模式..... 非常难以理解而且比较灵活多半,学得贼难受,写得贼费劲..... 2023年8月31日,周四晚上19:48 终于写完了,花了一天的时间来学习装饰模式和写这篇博客。 …

序列到序列学习(seq2seq)

permute(1,0,2),将batch_size 放在中间state 最后一个时刻,每个层的输出

nginx的限速和限制并发连接数、限制请求数

nginx的限速和限制并发连接数、限制请求数 限速(Rate Limiting): 限速允许你控制对服务器的请求速率,以防止过多的请求影响服务器性能。使用 limit_req_zone 指令定义一个共享内存区域,并在 location 块中使用 limit_r…

kafka学习

链接1:Kafka入门教程_香菜的博客-CSDN博客 链接2:https://mbd.baidu.com/ug_share/mbox/4a83aa9e65/share?productsmartapp&tkd716b5f663babe03088adca09b0fb938&share_urlhttps%3A%2F%2Fyebd1h.smartapps.cn%2Fpages%2Fblog%2Findex%3FblogId…

Golang字符串基本处理方法

Golang的字符串处理 字符串拼接 两种方法:strings.Join方法和’方法 ‘’方法 这种方式使用起来最简单,基本所有语言都有提供这种方式,使用 “” 操作符进行拼接时,会对字符串进行遍历,计算并开辟一个新的空间来存储…

数学建模--Subplot绘图的Python实现

目录 1.Subplot函数简介 2.Subplot绘图范例1:绘制规则子图 3.Subplot绘图范例2:绘制不规则子图 4.Subplot绘图范例3:gridspec辅助实战1 5.Subplot绘图范例4:gridspec辅助实战2 1.Subplot函数简介 """ 最近在数学建模种需要绘制多张子图,发现对于subplot函…

QT文件对话框,将标签内容保存至指定文件

一、主要步骤 首先,通过getSaveFileName过去想要保存的文件路径及文件名,其次,通过QFile类实例化一个文件对象,再读取文本框中的内容,最后将读取到的内容写入到文件中,最后关闭文件。 1.txt即为完成上述操作…

laragon 为 php 安装 Xdebug 扩展

众所周知,php 自带的 var_dump() 输出格式很不直观 而 laragon 作为很好的 windos 下开发环境很受欢迎,本文就介绍如何快速为 laragon 的 php 安装 Xdebug,方便开发调试 一:启动开发环境,在任意可访问 php 页面中输出 …

蓝桥杯备赛(Day5)——二叉树

二叉树存储 普通做法,二叉树一个节点包括结点的数值以及指向左右子节点的指针 在class Node中 def __init__(self,s,l=None,r=None):self.val=Noneself.l=lself.r=r 在竞赛中,我们往往使用静态数组实现二叉树,定义一个大小为N的静态结构体数组,使用其来存储一棵二叉树。…

python 学习笔记(4)—— webdriver 自动化操作浏览器(基础操作)

安装 web driver: 使用 driver 前,需要下载与浏览器版本相对应的 driver。如要在 Chrome 浏览器上操作,就要下载Chrome Driver。 几个常用浏览器的参考和下载地址: Edge Driver:https://developer.microsoft.com/en…

密码学入门——环游密码世界

文章目录 参考书目一、基本概念1.1 本书主要角色1.2 加密与解密 二、对称密码与公钥密码2.1 密钥2.2 对称密码和公钥密码2.3 混合密码技术 三、其他密码技术 参考书目 图解密码技术 第三版 一、基本概念 1.1 本书主要角色 1.2 加密与解密 加密 解密 密码破译 二、对称密…

Ansible之playbook详解和应用实例

目录 一、playbook简介 1.什么是playbook 2.playbook组成 二、应用实例 1.使用playbook安装启用httpd服务 2.使用playbook安装启用nginx服务 三、ansible-playbook其他用法 1.检查yaml文件的语法是否正确 2.检查tasks任务 3.检查指定的主机 4.指定从某个task开始运行…

Playwright for Python:断言

一、支持的断言 Playwright支持以下几种断言: 断言描述expect(locator).to_be_checked()复选框被选中expect(locator).to_be_disabled()元素是禁用状态expect(locator).to_be_editable()元素是可编辑状态expect(locator).to_be_empty()容器是空的expect(locator).…

Python列表排序

介绍一个关于列表排序的sort方法,看下面的案例: """ 列表的sort方法来对列表进行自定义排序 """# 准备列表 my_list [["a", 33], ["b", 55], ["c", 11]]# 排序,基于带名函数 …

Build阶段-Maven安装配置

构建Java项目的工具一般有两种选择,一个是Maven,一个是Gradle。 这里我们选择Maven作为项目的编译工具。 具体安装Maven流程不做阐述,但是需要确保配置好Maven仓库私服以及JDK编译版本

oracle数据库常见的优化步骤与脚本

要优化 Oracle 数据库的性能,可以按照以下步骤进行: 1. 性能分析和诊断:首先,使用 Oracle 提供的性能分析工具(如 AWR 报告、ASH 报告)对数据库进行分析和诊断。这些报告可以帮助您确定数据库的性能瓶颈和潜在问题。 2. 优化 SQL 查询语句:针对频繁执行的 SQL 查询语句…