You need to enable JavaScript to run this app.
文档中心
ByteHouse 企业版

ByteHouse 企业版

复制全文
下载 pdf
DML
删除语句 (DELETE)
复制全文
下载 pdf
删除语句 (DELETE)

如需在 ByteHouse 中删除数据,可通过 ALTER DELETE 方式,更多操作详情请参考删除操作(DELETE)

注意

  • 对于 HaMergeTree 表,DELETE WHERE 只能在本地(local)表上操作,不支持在分布式表操作。
  • 仅 ByteHouse 企业版 v2.4 及以上版本支持 DELETE WHERE 语法。
  • 执行DELETE WHERE语法会触发全表扫描,同时改写所有包含数据的数据块,易给集群造成显著负载压力,严禁频繁执行。
  • 对于已开启冷存的表,需谨慎使用DELETE WHERE语法,以避免引发更大的性能损耗及集群压力。
  • 如果您使用的是 HaUniqueMergeTree 和 HaMergeTree 表,且需大量删除数据,推荐使用 FAST DELETE,详情请参见FAST DELETE

语法

ALTER TABLE [tableIdentifier] DELETE [IN PARTITION partition_id] WHERE filter_expr;

参数说明
IN PARTITION partition_id:可选,如果表数据量较大,或者表的 part 数量较多,建议添加该条件,分区级别执行 delete 操作,更快、更稳定。

示例

-- 1. 创建库
CREATE DATABASE IF NOT EXISTS sample_db ON CLUSTER sample_cluster;

-- 2. 创建测试表
DROP TABLE IF EXISTS sample_db.sample_table_local ON CLUSTER sample_cluster;
DROP TABLE IF EXISTS sample_db.sample_table ON CLUSTER sample_cluster;
CREATE TABLE IF NOT EXISTS sample_db.sample_table_local ON CLUSTER sample_cluster
(
    `order_by_column` String,
    `partition_column` Date,
    `browser` String,
    `hour` Int32,
    `x` Int32,
    `p` Int32
) ENGINE = HaMergeTree('/clickhouse/tables/{shard}/{database}/local_table_name', '{replica}')
PARTITION BY partition_column
ORDER BY (`order_by_column`);

CREATE TABLE sample_db.sample_table
    AS sample_db.sample_table_local
    ENGINE = Distributed(sample_cluster, sample_db, sample_table_local, hour);

-- 3. 插入数据
INSERT INTO sample_db.sample_table_local ON CLUSTER sample_cluster
VALUES
('order1', '2020-11-21', 'chrome', 8, 10, 2),
('order2', '2020-11-02', 'chrome', 8, 10, 2),
('order3', '2020-10-05', 'firefox', 9, 20, 2);

-- 4. 删除数据
ALTER TABLE sample_db.sample_table_local ON CLUSTER sample_cluster 
    DELETE WHERE browser = 'firefox';

-- 5.查询删除是否成功
SELECT * 
FROM clusterAllReplicas(sample_cluster, system.mutations) 
WHERE 
database = 'sample_db' 
AND table = 'sample_table_local';

说明

当返回值中is_done字段返回值为 1时,代表删除操作执行成功。

最近更新时间:2026.02.04 15:43:45
这个页面对您有帮助吗?
有用
有用
无用
无用