Skip to content
Open
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
47 changes: 43 additions & 4 deletions faq/manage-cluster-faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -223,20 +223,18 @@ TiDB 在执行 SQL 时,预估出来每个 operator 处理了超过 10000 条

要预估 TiDB 中一张表的大小,你可以参考使用以下查询语句:

{{< copyable "sql" >}}

```sql
SELECT
db_name,
table_name,
ROUND(SUM(total_size / cnt), 2) Approximate_Size,
ROUND(SUM(total_size / cnt), 2) Approximate_Size_MB,
ROUND(SUM(total_size / cnt / (SELECT
ROUND(AVG(value), 2)
FROM
METRICS_SCHEMA.store_size_amplification
WHERE
value > 0)),
2) Disk_Size
2) Disk_Size_MB
FROM
(SELECT
db_name,
Expand Down Expand Up @@ -264,6 +262,47 @@ GROUP BY db_name , table_name;
- `Approximate_Size` 表示压缩前表的单副本大小,该值为估算值,并非准确值。
- `Disk_Size` 表示压缩后表的大小,可根据 `Approximate_Size` 和 `store_size_amplification` 得出估算值。

### 如何预估 TiDB 中单个数据库的大小?

要预估 TiDB 中单个数据库的大小,你可以参考使用以下查询语句:

```sql
SET @dbname = 'test';

SELECT
db_name,
ROUND(SUM(total_size / cnt), 2) AS approximate_size_mb,
ROUND(
SUM(total_size / cnt / (
SELECT AVG(value)
FROM metrics_schema.store_size_amplification
WHERE value > 0
)),
2
) AS disk_size_mb
FROM (
SELECT
db_name,
region_id,
SUM(approximate_size) AS total_size,
COUNT(*) AS cnt
FROM information_schema.tikv_region_status
WHERE db_name = @dbname
GROUP BY db_name, region_id
) t
GROUP BY db_name;
```

以上语句中:

- `store_size_amplification` 表示集群压缩比的平均值。你可以通过执行 `SELECT * FROM METRICS_SCHEMA.store_size_amplification;` 语句来查询该值。此外,你也可以在 Grafana 监控的 **PD** > **Statistics** > **Balance** 面板中,查看各节点的 `Size amplification` 指标,集群压缩比的平均值即为所有节点该指标的平均值。
- `Approximate_Size` 表示压缩前数据库的单副本估算大小,该值为估算值,并非准确值。
- `Disk_Size` 表示压缩后数据库的大小,可根据 `Approximate_Size` 和 `store_size_amplification` 得出估算值。

> **注意:**
>
> 由于 PD 默认启用跨表合并 (cross-table merge),同一个 Region 可能包含多张表的数据,因此上述方法是对数据库大小的估算。

## TiKV 管理

本小节介绍 TiKV 管理中的常见问题、原因及解决方法。
Expand Down
Loading