system.tables
包含服务器已知的每个表的元数据。
已分离 的表不会在 system.tables 中显示。
临时表 只有在创建它们的会话中才会在 system.tables 中可见。它们会以 database 字段为空且 is_temporary 标志已开启的形式显示。
列:
-
database(String) — 表所在数据库的名称。 -
name(String) — 表名。 -
uuid(UUID) — 表的 UUID(Atomic 数据库)。 -
engine(String) — 表引擎的名称(不含参数)。 -
is_temporary(UInt8) - 标志位,表示该表是否为临时表。 -
metadata_path(String) - 表在文件系统中的元数据路径。 -
metadata_modification_time(DateTime) - 表的元数据最后修改时间。 -
metadata_version(Int32) - ReplicatedMergeTree 表的元数据版本号;对于非 ReplicatedMergeTree 表,该值为 0。 -
create_table_query(String) - 用于创建该表的 SQL 查询语句。 -
engine_full(String) - 表引擎参数。 -
as_select(String) - 用于视图的SELECT查询。 -
partition_key(String) - 在表中指定的分区键表达式。 -
sorting_key(String) - 在表中指定的排序键表达式。 -
primary_key(String) - 表中指定的主键表达式。 -
sampling_key(String) - 在表中指定的采样键表达式。 -
storage_policy(String) - 存储策略: -
total_rows(Nullable(UInt64)) - 如果能够快速确定表中的精确行数,则为总行数,否则为NULL(包括底层的Buffer表)。 -
total_bytes(Nullable(UInt64)) - 字节总数(包括索引和投影)。如果可以快速确定存储中该表的精确字节数,则返回该值,否则为NULL(不包括任何底层存储)。- 如果表将数据存储在磁盘上,则返回磁盘上已用空间(即压缩后大小)。
- 如果表将数据存储在内存中,则返回已使用内存字节数的近似值。
-
total_bytes_uncompressed(Nullable(UInt64)) - 未压缩字节的总数(包括索引和投影)。如果可以根据存储中该表各个分片的校验和快速精确地计算字节数,则返回该值;否则为NULL(不考虑底层存储(如果有))。 -
lifetime_rows(Nullable(UInt64)) - 自服务器启动以来 INSERT 的总行数(仅用于Buffer表)。 -
lifetime_bytes(Nullable(UInt64)) - 自服务器启动以来已 INSERT 的总字节数(仅适用于Buffer表)。 -
comment(String) - 表的注释。 -
has_own_data(UInt8) — 标志用于指示该表本身是否在磁盘上存储一定数据,或者仅访问其他数据源。 -
loading_dependencies_database(Array(String)) - 数据库加载依赖项(在当前对象之前需要加载的对象列表)。 -
loading_dependencies_table(Array(String)) - 表加载依赖(需要在当前对象之前加载的对象列表)。
system.tables 表在实现 SHOW TABLES 查询时使用。
示例