[CLickhouse] 学习小计

1.建表

正常按照如下语句进行建表,但会报错说缺少ORDER BY 或 PRIMARY KEY

sql 复制代码
CREATE TABLE omds.a
(
    `x` String COMMENT '',
    `y` String COMMENT '',
    `z` String 
)
ENGINE = MergeTree();

若我们仅需建一个没有主键的表,直接使用如下建表语句即可:

sql 复制代码
CREATE TABLE omds.a
(
    `x` String COMMENT '',
    `y` String COMMENT '',
    `z` String 
)
ENGINE = MergeTree()
ORDER BY tuple()

因为在 ClickHouse 中,ORDER BY tuple() 是用来定义表的主键的。tuple() 函数创建了一个空的元组,这意味着表没有主键,即使用 ORDER BY tuple() 可以避免定义不必要的主键。

在 ClickHouse 中,主键用于优化数据读取,如果表没有主键,那么在执行查询时可能需要全表扫描,这可能会影响查询性能。但有些情况下可能不需要主键,例如,如果我们的表是一个临时表或者数据量非常小。在这些情况下,使用 ORDER BY tuple() 可以避免定义不必要的主键。

若要设置主键,则可以先对主键进行PRIMARY KEY指定,再ORDER BY排序即可:

sql 复制代码
CREATE TABLE omds.b
(
    `x` String COMMENT '',
    `y` String COMMENT '',
    `z` String 
)
ENGINE = MergeTree()
PRIMARY KEY x
ORDER BY x   ;
相关推荐
2401_884454151 小时前
golang如何给图片添加水印_golang图片添加水印解析
jvm·数据库·python
kexnjdcncnxjs1 小时前
如何用SQL统计每组的平均值同时显示原行_OVER子句
jvm·数据库·python
阿坤带你走近大数据1 小时前
DM达梦数据库的介绍
数据库·mysql·oracle·国产信创
CLX05051 小时前
Redis如何防范脑裂导致的数据丢失_配置min-replicas-to-write强制要求可用从节点数
jvm·数据库·python
毋语天1 小时前
从零搭建 RAG 系统:Milvus 向量数据库 + 大模型完整实战指南
数据库·milvus
环流_1 小时前
Redis ZSet
数据库·redis·缓存
m0_631529822 小时前
如何在非组件文件中动态读取 Redux Store 中的值以配置主题颜色
jvm·数据库·python
m0_733565462 小时前
SQL如何统计每日新增用户数_窗口函数与日期维度的结合
jvm·数据库·python
古怪今人2 小时前
etcd分布式键值存储系统 Windows下搭建etcd集群
数据库·分布式·etcd
我科绝伦(Huanhuan Zhou)2 小时前
oracle linux8.8一键部署oracle 11g
数据库·oracle