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;

相关推荐
·云扬·1 天前
ClickHouse核心引擎详解:库引擎与表引擎实践指南
clickhouse
孤独天狼6 天前
ClickHosue
clickhouse
不吃饭的猪8 天前
clickhouse-20版本安装部署
数据库·mysql·clickhouse
lhyzws8 天前
CENTOS上的网络安全工具(三十五)Portainer Kafka-Clickhouse部署 Flink安装部署与编程
clickhouse·flink·kafka
一瓢西湖水10 天前
列式数据库-以clickHouse为例
数据库·clickhouse
zhglhy10 天前
ClickHouse高性能技术解析
clickhouse
恒悦sunsite13 天前
clickhouse之clickhouse-client命令简介和使用
clickhouse·client·列式数据库·客户端命令·ctyunos
言之。16 天前
Python调用DeepSeek API查询ClickHouse
windows·python·clickhouse
zhglhy16 天前
ckman将单节点ClickHouse转为集群方案
clickhouse·ckman
葡萄月令with蒲公英18 天前
使用clickhouse_connect从csv导入数据到clickhouse报错
clickhouse