首页/数据/NoSQL 速查/ALTER 修改表结构
本包目录(322 条)
MongoDB99 条Elasticsearch89 条
ClickHouse56 条
时序与列式28 条选型与架构50 条

ALTER 修改表结构

列级变更用 ALTER TABLE:加列、改类型、删列、改默认值、加跳过索引;多数变更立即生效,但对旧数据的类型转换会以 mutation 形式在后台进行。

NoSQL 速查数据更新于 2026-10-12
常用语句ADD COLUMN / DROP COLUMN / MODIFY COLUMN / RENAME COLUMN / COMMENT COLUMN
索引ADD INDEX … TYPE minmax|set|bloom_filter GRANULARITY n;MATERIALIZE INDEX 回填
生效范围新结构立即对新数据生效,旧 part 的类型转换与索引回填由 mutation 完成

示例

示例
ALTER TABLE events ADD COLUMN IF NOT EXISTS device String DEFAULT 'unknown' AFTER user_id;
ALTER TABLE events MODIFY COLUMN device LowCardinality(String);
ALTER TABLE events DROP COLUMN IF EXISTS legacy_col;
ALTER TABLE events ADD INDEX idx_user user_id TYPE bloom_filter GRANULARITY 4;
ALTER TABLE events MATERIALIZE INDEX idx_user;
ADD COLUMN 配 DEFAULT 表达式时,读旧数据会即时计算默认值,不写盘,开销可控。

易错点

  • MODIFY COLUMN 改类型对旧数据是异步 mutation,大表上耗时可能很长,先看 system.mutations 队列
  • DROP COLUMN 不会立刻回收磁盘空间,要等 part 重写与清理

数据来源与参考

  • ClickHouse Docs: ALTER TABLE … COLUMN
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌