首页/数据/NoSQL 速查/system.tables 元数据总览
ClickHouse56 条

system.tables 元数据总览

system.tables 汇总所有表的引擎、排序键、分区键、行数与磁盘占用,还提供 create_table_query 可直接复制的建表语句,是巡检与迁移的基础表。

NoSQL 速查数据更新于 2026-10-13

system.tables 里有什么

system.tables 汇总所有表的引擎、排序键、分区键、主键、行数与磁盘占用,还提供 create_table_query 字段可以直接取出建表语句。它适合做巡检、盘点大表与复制结构,是排查"这张表是怎么建的"的第一站。

和 system.parts 怎么配合

system.tables 里的行数与字节数来自元数据估算,精确核对要以 system.parts 的聚合为准;单表的 part 数量、分区分布与压缩情况也都在 system.parts 里查。要看列定义则用 system.columns,可按数据库与表过滤,拿到类型、默认表达式与压缩编码。

基本信息

关键列database、name、engine、sorting_key、partition_key、total_rows、total_bytes、create_table_query
配合使用system.columns 查列定义,system.parts 查 part 与分区
过滤建议按 database 过滤业务库,排除 system 库
权限查看系统表需要对应库的读取权限
适用版本各主流版本字段基本一致,新版本会追加列

示例

示例
SELECT
    name,
    engine,
    sorting_key,
    formatReadableSize(total_bytes) AS size
FROM system.tables
WHERE database = 'analytics'
ORDER BY total_bytes DESC;

-- 列定义:类型、默认表达式与压缩编码
SELECT name, type, default_expression, compression_codec
FROM system.columns
WHERE database = 'analytics' AND table = 'events';

-- part 视图:确认分区分布与合并情况
SELECT partition, count() AS parts, sum(rows) AS rows
FROM system.parts
WHERE table = 'events' AND active
GROUP BY partition ORDER BY partition;

典型使用场景

  • 盘点大表:按占用排序找出需要治理的表
  • 结构核对:确认排序键与分区键是否符合设计要求
  • 迁移复制:用 create_table_query 拿到可复用的建表语句
  • 写入排查:结合 system.parts 看 part 数量是否异常增长
  • 元数据巡检:定期检查空表、临时表与重复结构

常用列读法

列含义注意
engine表引擎区分 MergeTree 家族与分布式表
sorting_key排序键影响合并效率与查询效率
partition_key分区键表达式决定分区裁剪能否生效
total_rows行数估算与 system.parts 的精确值可能有差异
total_bytes压缩后占用不含临时 part,与实际磁盘占用有差别
create_table_query建表语句含集群与副本路径,异地重建要改
total_rows 与 total_bytes 来自元数据估算,做容量核算或精确对账时要以 system.parts 的聚合结果为准,两者出现偏差是正常现象。
create_table_query 里包含 ON CLUSTER 与副本路径等集群相关信息,跨环境重建前必须修改集群名与宏路径,否则会指向不存在的集群,甚至因目标环境缺少同名宏而直接失败。

易错点

  • 总字节数是压缩后大小,与磁盘实际占用(含临时 part)可能有差异
  • create_table_query 里包含集群名与副本路径,异地重建前要修改这些内容
  • 用 total_rows 做精确对账会因估算误差产生偏差,精确值要看 system.parts
  • 查询系统表时忘记按 database 过滤,会把 system 库自身的表混进盘点结果

数据来源与参考

  • ClickHouse Docs: system.tables
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌