临时表

简介: 临时表

ClickHouse 也有临时表的概念,创建临时表的方法是在普通表的基础之上添加 TEMPORARY 关键字,它的完整语法如下所示:

$ CREATE TEMPORARY TABLE [IF NOT EXISTS] table_name (
  name1 [type] [DEFAULT|MATERIALIZED|ALIAS expr],
  name2 [type] [DEFAULT|MATERIALIZED|ALIAS expr],
)点击复制复制失败已复制


相比普通表而言,临时表有如下两点特殊之处:

  1. 它的生命周期是会话绑定的,所有它只支持Memory表引擎,如果会话结束,数据表就会被销毁。
  2. 临时表不属于任何数据库,所以在它的建表语句中,既没有数据库参数也没有表引擎参数。


既然临时表不属于任何数据库,如果临时表和普通表名称相同,会出现什么状况?接下来不妨做个测试。首先在 DEFAULT 数据库串讲测试表并写入数据:

$ CREATE TABLE tmp_v1 (
  title String
) ENGINE = Memory;
$ INSERT INTO tmp_v1 VALUES ('click')点击复制复制失败已复制


接着创建一张名称相同的临时表并写入数据:

$ CREATE TEMPORARY TABLE tmp_v1 (createtime Datetime)
$ INSERT INTO tmp_v1 VALUES (now())点击复制复制失败已复制


现在查询tmp_v1看看会发生什么:

$ SELECT * FROM tmp_v1;
┌──────────createtime─┐
│ 2022-04-09 04:29:05 │
└─────────────────────┘点击复制复制失败已复制


通过返回结果可以得出结论:临时表的优先级是大于普通表的。当两张数据表名称相同的时候,会优先读取临时表的数据。


ClickHouse 的日常使用中,通常不会刻意使用临时表。它更多被运用在 ClickHouse 的内部,是数据在集群间传播的载体

目录
相关文章
|
SQL 存储 算法
ClickHouse性能优化 3
ClickHouse性能优化
790 0
|
芯片
毕业设计 基于51单片机的手机蓝牙控制8位LED灯亮灭设计
毕业设计 基于51单片机的手机蓝牙控制8位LED灯亮灭设计
256 0
|
存储 监控 OLAP
【ClickHouse 技术系列】- 在 ClickHouse 物化视图中使用 Join
本文翻译自 Altinity 针对 ClickHouse 的系列技术文章。面向联机分析处理(OLAP)的开源分析引擎 ClickHouse,因其优良的查询性能,PB级的数据规模,简单的架构,被国内外公司广泛采用。本系列技术文章,将详细展开介绍 ClickHouse。
【ClickHouse 技术系列】- 在 ClickHouse 物化视图中使用 Join
|
8月前
|
存储 SQL 自然语言处理
ClickHouse查询执行与优化
本文详细介绍了SQL语法扩展、执行计划分析及优化策略,涵盖特殊函数与子句(如`WITH`、`ANY JOIN`)、聚合函数扩展(如`uniqCombined`、`quantileTDigest`)以及执行计划优化技巧。同时深入解析了ClickHouse的索引原理,包括主键索引和跳数索引的工作机制与优化方法。针对查询优化,文章提供了过滤条件下推、分布式查询优化和数据预聚合等策略,并探讨了资源管理与并发控制的核心参数(如`max_memory_usage`、`max_threads`)及队列优先级调度机制,助力高效使用ClickHouse。
|
存储 编译器 C++
【c++】类和对象(中)(构造函数、析构函数、拷贝构造、赋值重载)
本文深入探讨了C++类的默认成员函数,包括构造函数、析构函数、拷贝构造函数和赋值重载。构造函数用于对象的初始化,析构函数用于对象销毁时的资源清理,拷贝构造函数用于对象的拷贝,赋值重载用于已存在对象的赋值。文章详细介绍了每个函数的特点、使用方法及注意事项,并提供了代码示例。这些默认成员函数确保了资源的正确管理和对象状态的维护。
698 4
|
数据库 微服务
GTS事务执行过程
【8月更文挑战第25天】
303 4
|
SQL 存储 分布式计算
如何配置 ADS 表?
【8月更文挑战第11天】
522 3
|
JavaScript
Selenium--WebDriverWait--你知道显示等待?(结合源码让你更加得心应手)
Selenium--WebDriverWait--你知道显示等待?(结合源码让你更加得心应手)
323 0
|
JSON 算法 Go
go语言后端开发学习(一)——JWT的介绍以及基于JWT实现登录验证
go语言后端开发学习(一)——JWT的介绍以及基于JWT实现登录验证
219 0
|
关系型数据库 MySQL 数据库
Mysql数据库常用的词汇,新手必备
Mysql数据库常用的词汇,新手必备
273 0