ClickHouse Sql
删除数据
[ON CLUSTER cluster]
为可选项,只删除本地机器的可不加,一般地,我们都是要加的[TEMPORARY]
临时表 关键字
1. 删除库
删除库中所有表,然后删除库
DROP DATABASE [IF EXISTS] db [ON CLUSTER cluster]
2. 删除表/视图
删除【本地表】、【分布表】,立即删除,删除后不可写入了,因为没有表元数据了。后重建表,不会报错。
DROP [TEMPORARY] TABLE [IF EXISTS] [db.]name [ON CLUSTER cluster]
DROP VIEW [IF EXISTS] [db.]name [ON CLUSTER cluster]
clickhouse默认的库引擎是原子数据库引擎
删除【复制表】后重建同名表,会出现创建失败提示,因为 复制表的引擎是ReplicatedMergeTree
引擎族,需要zk路径和备份名这俩参数。删除后不会立即删除复制(备份)数据,默认480s后删除。所以立马重建的话可能会报创建失败。避免这个报错可使用Ordinary表引擎,可使用uniq ZK路径,也可修改如下默认的480s参数:
-- config.xml
<database_atomic_delay_before_drop_table_sec>480</database_atomic_delay_before_drop_table_sec>
3. 清空表
truncate 表相对delete 表的优点是:使用的系统和事务日志资源少
特点是:truncate 表后,表和表的索引讲重新设置成初始大小
TRUNCATE TABLE [IF EXISTS] [db.]name [ON CLUSTER cluster]
4. 指定命中数据删除
delete 表的特点是:可以表达式删除,而不是全表全部行删除
-- 不加where就和 truncate 一样的效果了
delete table database.table
-- 指定条件删除
delete table database.table where exp_function
5. 删除字典
DROP DICTIONARY [IF EXISTS] [db.]name
6. 删除用户
删除多个用户,用户名按
,
分割
DROP USER [IF EXISTS] name [,...] [ON CLUSTER cluster_name]
7. 删除用户的角色(权限组)
DROP ROLE [IF EXISTS] name [,...] [ON CLUSTER cluster_name]
8. 分布式集群下,查看表分区存储大小
这里每个分片的大小可能不一样,集群可能有几个分片,需要将几个分片的加起来
select
substring(partition,1,10) part,
sum(rows) AS `总行数`,
formatReadableSize(sum(data_uncompressed_bytes)) AS `原始大小`,
formatReadableSize(sum(data_compressed_bytes)) AS `压缩大小`,
round((sum(data_compressed_bytes) / sum(data_uncompressed_bytes)) * 100,0) AS `压缩率`
from
system.parts
where
database = 'database_T'
and table = 'table_T'
group by
substring(partition,1,10);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下