Clickhouse语法及配置

  • Clickhouse常用语法

插入

INSERT INTO users VALUES (1, 'Alice', now()), (2, 'Bob', now());

删除

与mysql不一致

ALTER TABLE users DELETE WHERE age > 30;

更新

与mysql不一致

ALTER TABLE users UPDATE name = 'Alice_New' WHERE id = 1;

​​​​​​​查询

SELECT *from hfhq.odr_fee_detail ofd where str3 like '%2%'

  • 优化参数

1.禁止使用 Nullable

官方已经指出 Nullable 类型几乎总是会拖累性能,因为存储 Nullable 列时需要创建一个额外的文件来存储 NULL 的标记,并且 Nullable 列无法被索引。因此除非极特殊情况,应直接使用字段默认值表示空,或者自行指定一个在业务中无意义的值(例如用-1 表示没有商品ID)。

https://clickhouse.com/docs/zh/sql-reference/data-types/nullable

2.​​​​​​​启用 optimize_move_to_prewhere

启用内置优化规则提升执行效率:

optimize_move_to_prewhere​(默认开启)

作用:自动将 WHERE 条件转换为 Prewhere,优先过滤数据再读取列,减少 I/O。

如果未开启,配置文件添加

<profiles>

<default>

<optimize_move_to_prewhere>1</optimize_move_to_prewhere>

</default>

</profiles>

查询是否启用:SELECT * FROM system.settings WHERE name = 'optimize_move_to_prewhere';

​​​​​​​3.启用 optimize_functions_to_subcolumns

启用或禁用通过将某些函数转换为读取子列进行优化。这可以减少要读取的数据量。

https://clickhouse.com/docs/zh/operations/settings/settings#optimize_functions_to_subcolumns

/etc/clickhouse-server/users.xml

<profiles>

<default>

<optimize_functions_to_subcolumns>1</optimize_functions_to_subcolumns>

</default>

</profiles>

查询是否启用:SELECT * FROM system.settings WHERE name = 'optimize_functions_to_subcolumns';

​​​​​​​4.关闭 服务器运行日志

/etc/clickhouse-server/config.xml

  1. <level>trace</level>
    trace是最详细的日志级别,记录所有操作(包括低级别调试信息),会导致:日志量暴增,I/O 压力大,磁盘空间快速耗尽,查询性能下降(日志写入与查询争抢资源)

调整参数:调整为 warning,仅记录警告及以上信息

  1. <size>1000M</size> <count>10</count>

单个日志文件最大 1GB,保留 10 个文件 → 总日志量可达 10GB,可能占用过高磁盘空间

调整参数:<count>从 10降至 5,总日志量限制在5GB以内

可以去对应目录删除之前日志

/var/log/clickhouse-server/clickhouse-server.log

​​​​​​​5.关闭查询日志

与mysql query_log一致,开启后会记录所有sql语句

/etc/clickhouse-server/users.xml

<profiles>

<default>

<log_queries>0</log_queries>

</default>

</profiles>

配置完可以把10天前记录的数据清掉

ALTER TABLE system.query_log DELETE WHERE event_time < now() - INTERVAL 10 DAY;

相关推荐
l1t2 天前
DeepSeek总结的chdb-core v26.7.3发版说明
数据库·clickhouse·oracle
SelectDB技术团队4 天前
从 ClickHouse 迁移到 Doris:SQL 兼容、同步与验证清单
数据库·人工智能·sql·clickhouse·apache doris·selectdb·湖仓架构升级
java_logo6 天前
Docker 部署 ClickHouse Server:轻松搭建列式 OLAP 分析数据库平台
数据库·clickhouse·docker·私有化部署·olap·列式数据库·轩辕镜像
西风未眠10 天前
ClickHouse数据库引擎引起的数据丢失
数据库·clickhouse·故障
李兆龙的博客12 天前
从一到无穷大 #86:ClickHouse 收购 RunReveal——可观测性竞争进入宏观调控阶段
clickhouse
Gain_chance16 天前
大数据毕业设计实战|Data Insight Platform:用 FastAPI + ClickHouse 打造低门槛全链路数据洞察平台
大数据·数据库·clickhouse·毕业设计·fastapi
迷迭香yy19 天前
A股数据本地存储方案对比JSON、SQLite、ClickHouse、DuckDB怎么选 IG50免费开源股票数据API接口
clickhouse·sqlite·json
leisoo809720 天前
本地股票数据深度对比ClickHouse与Parquet存储方案 IG50免费开源股票数据API接口
clickhouse·开源
A.说学逗唱的Coke22 天前
【数据库专题】ClickHouse 深度实战:从列式存储原理到 PB 级海量日志与可观测性分析
数据库·clickhouse·硬件架构
吉甫作诵1 个月前
阿里云 ECS 安装 ClickHouse:密码配置、目录迁移与基础调优
大数据·clickhouse