Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .translation-init
Original file line number Diff line number Diff line change
@@ -1 +1 @@
Translation initialization: 2025-10-13T04:21:09.341216
Translation initialization: 2025-10-15T10:09:57.778195
43 changes: 21 additions & 22 deletions docs/cn/sql-reference/10-sql-commands/00-ddl/01-table/index.md
Original file line number Diff line number Diff line change
@@ -1,58 +1,57 @@
---
title: 表(Table)
title: 表
---

本页面提供 Databend 中表操作的全面概述,按功能分类便于查阅
本页面按功能组织,全面概述了 Databend 中的表操作,方便查阅

## 表创建
## 创建表

| 命令 | 描述 |
|---------|-------------|
| [CREATE TABLE](10-ddl-create-table.md) | 创建具有指定列和选项的新表 |
| [CREATE TABLE ... LIKE](10-ddl-create-table.md#create-table--like) | 创建与现有表列定义相同的新表 |
| [CREATE TABLE ... AS](10-ddl-create-table.md#create-table--as) | 基于 SELECT 查询结果创建表并插入数据 |
| [CREATE TRANSIENT TABLE](10-ddl-create-transient-table.md) | 创建不支持时间回溯(Time Travel的表 |
| [CREATE TABLE](10-ddl-create-table.md) | 使用指定的列和选项创建新表 |
| [CREATE TABLE ... LIKE](10-ddl-create-table.md#create-table--like) | 创建与现有表具有相同列定义的表 |
| [CREATE TABLE ... AS](10-ddl-create-table.md#create-table--as) | 根据 SELECT 查询结果创建表并插入数据 |
| [CREATE TRANSIENT TABLE](10-ddl-create-transient-table.md) | 创建不支持 Time Travel 的表 |
| [CREATE EXTERNAL TABLE](10-ddl-create-table-external-location.md) | 创建数据存储在指定外部位置的表 |
| [ATTACH TABLE](92-attach-table.md) | 通过关联现有表创建新表 |
| [ATTACH TABLE](92-attach-table.md) | 通过与现有表关联创建表 |

## 表修改
## 修改表

| 命令 | 描述 |
|---------|-------------|
| [ALTER TABLE COLUMN](90-alter-table-column.md) | 修改表的列结构 |
| [ALTER TABLE COLUMN](90-alter-table-column.md) | 通过更改列来修改表结构 |
| [ALTER TABLE CONNECTION](91-alter-table-connection.md) | 更新外部表的连接设置 |
| [ALTER TABLE OPTION](90-alter-table-option.md) | 修改表的 Fuse 引擎选项 |
| [ALTER TABLE COMMENT](90-alter-table-comment.md) | 更新表的注释 |
| [RENAME TABLE](30-ddl-rename-table.md) | 更改表名称 |
| [RENAME TABLE](30-ddl-rename-table.md) | 更改表名 |

## 表信息
## 查看表信息

| 命令 | 描述 |
|---------|-------------|
| [DESCRIBE TABLE](50-describe-table.md) / [SHOW FIELDS](show-fields.md) | 显示指定表的列信息 |
| [SHOW FULL COLUMNS](show-full-columns.md) | 获取指定表的列详细信息 |
| [SHOW FULL COLUMNS](show-full-columns.md) | 检索指定表的列详细信息 |
| [SHOW CREATE TABLE](show-create-table.md) | 显示创建指定表的 CREATE TABLE 语句 |
| [SHOW TABLES](show-tables.md) | 列出当前或指定数据库中的表 |
| [SHOW TABLE STATUS](show-table-status.md) | 显示数据库中的表状态 |
| [SHOW TABLE STATUS](show-table-status.md) | 显示数据库中表的状态 |
| [SHOW DROP TABLES](show-drop-tables.md) | 列出当前或指定数据库中已删除的表 |

## 表删除与恢复
## 删除与恢复表

| 命令 | 描述 | 恢复选项 |
|---------|-------------|----------------|
| [TRUNCATE TABLE](40-ddl-truncate-table.md) | 清空表数据但保留表结构 | [FLASHBACK TABLE](70-flashback-table.md) |
| [TRUNCATE TABLE](40-ddl-truncate-table.md) | 清空表数据,保留表结构 | [FLASHBACK TABLE](70-flashback-table.md) |
| [DROP TABLE](20-ddl-drop-table.md) | 删除表 | [UNDROP TABLE](21-ddl-undrop-table.md) |
| [VACUUM TABLE](91-vacuum-table.md) | 永久删除表的历史数据文件(企业版 (Enterprise Edition)) | 不可恢复 |
| [VACUUM DROP TABLE](91-vacuum-drop-table.md) | 永久删除已删除表的数据文件(企业版 (Enterprise Edition)) | 不可恢复 |
| [VACUUM TABLE](91-vacuum-table.md) | 永久删除表的历史数据文件(企业版) | 不可恢复 |
| [VACUUM DROP TABLE](91-vacuum-drop-table.md) | 永久删除已删除表的数据文件(企业版) | 不可恢复 |

## 表优化
## 优化表

| 命令 | 描述 |
|---------|-------------|
| [ANALYZE TABLE](80-analyze-table.md) | 计算表统计信息以提升查询性能 |
| [OPTIMIZE TABLE](60-optimize-table.md) | 压缩或清理历史数据以节省存储空间并提升查询性能 |
| [SET CLUSTER KEY](../06-clusterkey/dml-set-cluster-key.md) | 配置聚簇键以提升大表查询性能 |
| [SET CLUSTER KEY](../06-clusterkey/dml-set-cluster-key.md) | 配置 Cluster Key 以提升大表查询性能 |

:::note
表优化属于高级操作,执行前请仔细阅读文档以避免数据丢失风险
表优化属于高级操作,执行前请务必仔细阅读文档,避免潜在数据丢失
:::
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
---
title: SHOW STATISTICS
sidebar_position: 15
---
import FunctionDescription from '@site/src/components/FunctionDescription';

<FunctionDescription description="引入或更新于:v1.2.802"/>

显示表及其列的统计信息。统计信息通过提供数据分布、行数和唯一值等信息,帮助查询优化器(Query Optimizer)制定更优的查询执行计划。

Databend 在数据插入期间自动生成统计信息。你可以使用此命令查看统计信息,并将其与实际数据进行比对,以发现可能影响查询性能的差异。

## 语法

```sql
SHOW STATISTICS [ FROM DATABASE <database_name> | FROM TABLE <database_name>.<table_name> ]
```

| 参数 | 说明 |
|-----------|-----------------------------------------------------------------------------------------------------------------------------|
| FROM DATABASE | 显示指定数据库中所有表的统计信息。 |
| FROM TABLE | 仅显示指定表的统计信息。 |

如果未指定参数,该命令将返回当前数据库中所有表的统计信息。

## 输出列

该命令为每个表中的每一列返回以下列:

| 列 | 说明 |
|--------|-----------------------------------------------------------------------------------------------------------------------------|
| database | 数据库名称。 |
| table | 表名称。 |
| column_name | 列名称。 |
| stats_row_count | 统计信息中累计的行数。由于统计信息在插入时更新,但在删除时不减少,因此该数值可能 **大于** actual_row_count。 |
| actual_row_count | 当前快照下表中的实际行数。 |
| distinct_count | 唯一值(NDV)的估计数量,通过 HyperLogLog 计算得出。 |
| null_count | 列中 NULL 值的数量。 |
| avg_size | 列中每个值的平均大小(以字节为单位)。 |

## 示例

### 显示当前数据库的统计信息

```sql
CREATE DATABASE test_db;
USE test_db;

CREATE TABLE t1 (id INT, name VARCHAR(50));
INSERT INTO t1 VALUES (1, 'Alice'), (2, 'Bob');

SHOW STATISTICS;
```

输出:
```
database table column_name stats_row_count actual_row_count distinct_count null_count avg_size
test_db t1 id 2 2 2 0 4
test_db t1 name 2 2 2 0 16
```

### 显示指定表的统计信息

```sql
CREATE TABLE t2 (age INT, city VARCHAR(50));
INSERT INTO t2 VALUES (25, 'New York'), (30, 'London');

SHOW STATISTICS FROM TABLE test_db.t2;
```

输出:
```
database table column_name stats_row_count actual_row_count distinct_count null_count avg_size
test_db t2 age 2 2 2 0 4
test_db t2 city 2 2 2 0 19
```

### 显示数据库中所有表的统计信息

```sql
SHOW STATISTICS FROM DATABASE test_db;
```

这将显示 `test_db` 数据库中所有表(`t1` 和 `t2`)的统计信息。

## 相关命令

- [SHOW TABLE STATUS](show-table-status.md): 显示表的状态信息
Original file line number Diff line number Diff line change
Expand Up @@ -3,30 +3,8 @@ title: FUSE_STATISTIC
---
import FunctionDescription from '@site/src/components/FunctionDescription';

<FunctionDescription description="引入或更新: v1.2.587"/>
<FunctionDescription description="引入或更新于:v1.2.587"/>

返回指定表中每一列的统计信息:

- `distinct_count`: 返回估计的不同值数量。
- `histogram`: 为列生成直方图,将数据分布分解为多个桶。每个桶包含以下信息:
- `bucket id`: 桶的标识符。
- `min`: 桶内的最小值。
- `max`: 桶内的最大值。
- `ndv` (number of distinct values): 桶内唯一值的计数。
- `count`: 桶内值的总数。

## 语法

```sql
FUSE_STATISTIC('<database_name>', '<table_name>')
```

必须将 `enable_analyze_histogram` 设置为 `1`,该函数才会生成直方图。默认情况下,此设置为 `0`,即除非明确启用,否则不会生成直方图。

```sql
SET enable_analyze_histogram = 1;
```

## 示例

您最有可能与 [ANALYZE TABLE](/sql/sql-commands/ddl/table/analyze-table) 一起使用此函数来检查表的统计信息。请参阅 [ANALYZE TABLE](/sql/sql-commands/ddl/table/analyze-table) 页面上的 [示例](/sql/sql-commands/ddl/table/analyze-table#examples) 部分。
:::note
此函数已弃用。请改用 [SHOW STATISTICS](/sql/sql-commands/ddl/table/show-statistics) 查看表统计信息。
:::
Loading