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;

相关推荐
2301_807583232 天前
ubuntu22.04集群部署clickhouse详细步骤
linux·clickhouse·zookeeper
Azure++4 天前
Centos安装clickhouse
linux·clickhouse·centos
阳爱铭7 天前
ClickHouse 中至关重要的两类复制表引擎——ReplicatedMergeTree和 ReplicatedReplacingMergeTree
大数据·hive·hadoop·sql·clickhouse·spark·hbase
liao__ran12 天前
ClickHouse CPU 排查快速参考指南
运维·服务器·clickhouse
XueminXu12 天前
ClickHouse查看数据库、表、列等元数据信息
clickhouse·system·元数据·databases·system.tables·system.columns·system.settings
liao__ran12 天前
ClickHouse CPU 排查详细指南
运维·clickhouse
现在,此刻13 天前
高可用与高性能数据库配置实践分析(pgSql && clickhouse)
数据库·clickhouse
yourkin66614 天前
clickhouse
clickhouse
努力成为一个程序猿.14 天前
Clickhouse数据副本和分片
运维·clickhouse·debian
l1t14 天前
改写ITPUB newkid的求解数独DuckDB SQL为Clickhouse格式
数据库·sql·clickhouse·duckdb