Skip to content

Commit

Permalink
Update and correct information aboud sys.schema_unused_indexes (#16927)
Browse files Browse the repository at this point in the history
  • Loading branch information
Oreoxmt authored Mar 29, 2024
1 parent 874b960 commit 32670d6
Show file tree
Hide file tree
Showing 5 changed files with 52 additions and 32 deletions.
4 changes: 3 additions & 1 deletion TOC.md
Original file line number Diff line number Diff line change
Expand Up @@ -986,7 +986,9 @@
- PERFORMANCE_SCHEMA
- [概述](/performance-schema/performance-schema.md)
- [`SESSION_CONNECT_ATTRS`](/performance-schema/performance-schema-session-connect-attrs.md)
- [`SYS`](/sys-schema.md)
- SYS
- [概述](/sys-schema/sys-schema.md)
- [`schema_unused_indexes`](/sys-schema/sys-schema-unused-indexes.md)
- [元数据锁](/metadata-lock.md)
- [TiDB 加速建表](/accelerated-table-creation.md)
- UI
Expand Down
4 changes: 4 additions & 0 deletions information-schema/information-schema-tidb-index-usage.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,3 +91,7 @@ DESC CLUSTER_TIDB_INDEX_USAGE;

- `TIDB_INDEX_USAGE` 表中的数据可能存在最多 5 分钟的延迟。
- 在 TiDB 重启后,`TIDB_INDEX_USAGE` 表中的数据会被清空。

## 更多阅读

- [`sys.schema_unused_indexes`](/sys-schema/sys-schema-unused-indexes.md)
6 changes: 3 additions & 3 deletions releases/release-8.0.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ TiDB 版本:8.0.0
<tr>
<td rowspan="1">数据库管理与可观测性</td>
<td>支持观测索引使用情况 </td>
<td>正确的索引设计是提升数据库性能的重要前提。TiDB v8.0.0 引入内存表 <a href="https://docs.pingcap.com/zh/tidb/v8.0/information-schema-tidb-index-usage"><code>INFORMATION_SCHEMA.TIDB_INDEX_USAGE</code></a> 和视图 <a href="https://docs.pingcap.com/zh/tidb/v8.0/sys-schema#schema_unused_index"><code>sys.schema_unused_index</code></a> ,用于记录索引的使用情况。该功能有助于用户评估数据库中索引的效率并优化索引设计。</td>
<td>正确的索引设计是提升数据库性能的重要前提。TiDB v8.0.0 引入内存表 <a href="https://docs.pingcap.com/zh/tidb/v8.0/information-schema-tidb-index-usage"><code>INFORMATION_SCHEMA.TIDB_INDEX_USAGE</code></a> 和视图 <a href="https://docs.pingcap.com/zh/tidb/v8.0/sys-schema-unused-indexes"><code>sys.schema_unused_indexes</code></a> ,用于记录索引的使用情况。该功能有助于用户评估数据库中索引的效率并优化索引设计。</td>
</tr>
<tr>
<td rowspan="2">数据迁移</td>
Expand Down Expand Up @@ -236,7 +236,7 @@ TiDB 版本:8.0.0

通过这些信息,你可以识别未被优化器使用的索引以及过滤效果不佳的索引,从而优化索引设计,提升数据库性能。

此外,TiDB v8.0.0 新增与 MySQL 兼容的视图 [`sys.schema_unused_index`](/sys-schema.md),用于记录自 TiDB 上次启动以来未被使用的索引信息。对于从 v8.0.0 之前版本升级的集群,`sys` 中的内容不会自动创建。你可以参考 [`sys`](/sys-schema.md) 手动创建。
此外,TiDB v8.0.0 新增与 MySQL 兼容的视图 [`sys.schema_unused_indexes`](/sys-schema/sys-schema-unused-indexes.md),用于记录自 TiDB 上次启动以来未被使用的索引信息。对于从 v8.0.0 之前版本升级的集群,`sys` 中的内容不会自动创建。你可以参考 [`sys.schema_unused_indexes`](/sys-schema/sys-schema-unused-indexes.md#手动创建-schema_unused_indexes-视图) 手动创建。

更多信息,请参考[用户文档](/information-schema/information-schema-tidb-index-usage.md)

Expand Down Expand Up @@ -362,7 +362,7 @@ TiDB 版本:8.0.0
### 系统表

* 新增系统表 [`INFORMATION_SCHEMA.TIDB_INDEX_USAGE`](/information-schema/information-schema-tidb-index-usage.md)[`INFORMATION_SCHEMA.CLUSTER_TIDB_INDEX_USAGE`](/information-schema/information-schema-tidb-index-usage.md#cluster_tidb_index_usage) 用于记录 TiDB 节点中索引的访问统计信息。
* 新增系统数据库 [`sys`](/sys-schema.md)[`sys.schema_unused_index`](/sys-schema.md#schema_unused_index) 视图,用于记录自 TiDB 上次启动以来未被使用的索引信息。
* 新增系统数据库 [`sys`](/sys-schema/sys-schema.md)[`sys.schema_unused_indexes`](/sys-schema/sys-schema-unused-indexes.md) 视图,用于记录自 TiDB 上次启动以来未被使用的索引信息。

## 废弃功能

Expand Down
56 changes: 28 additions & 28 deletions sys-schema.md → sys-schema/sys-schema-unused-indexes.md
Original file line number Diff line number Diff line change
@@ -1,35 +1,11 @@
---
title: sys Schema
summary: 了解 TiDB `sys` 系统数据库
title: schema_unused_indexes
summary: 了解 TiDB `sys` 系统数据库中的 `schema_unused_indexes` 表
---

# `sys` Schema
# `schema_unused_indexes`

TiDB 从 v8.0.0 开始提供 `sys` Schema。你可以通过查看 `sys` 系统数据库中的表或视图理解 TiDB 的系统表、[`INFORMATION_SCHEMA`](/information-schema/information-schema.md) 表和 [`PERFORMANCE SCHEMA`](/performance-schema/performance-schema.md) 表内的数据。

## 手动创建 `sys` Schema 和视图

对于从 v8.0.0 之前版本升级的集群,`sys` Schema 和其中的视图不会自动创建。你可以通过以下 SQL 语句手动创建:

```sql
CREATE DATABASE IF NOT EXISTS sys;
CREATE OR REPLACE VIEW sys.schema_unused_indexes AS
SELECT
table_schema as object_schema,
table_name as object_name,
index_name
FROM information_schema.cluster_tidb_index_usage
WHERE
table_schema not in ('sys', 'mysql', 'INFORMATION_SCHEMA', 'PERFORMANCE_SCHEMA') and
index_name != 'PRIMARY'
GROUP BY table_schema, table_name, index_name
HAVING
sum(last_access_time) is null;
```

## `schema_unused_index`

`schema_unused_index` 用于记录自 TiDB 上次启动以来未被使用的索引信息,包括如下列:
`schema_unused_indexes` 用于记录自 TiDB 上次启动以来未被使用的索引信息,包括如下列:

- `OBJECT_SCHEMA`:索引所在表的所属数据库的名称。
- `OBJECT_NAME`:索引所在表的名称。
Expand All @@ -52,3 +28,27 @@ DESC SCHEMA_UNUSED_INDEXES;
+---------------+-------------+------+------+---------+-------+
3 rows in set (0.00 sec)
```

## 手动创建 `schema_unused_indexes` 视图

对于从 v8.0.0 之前版本升级的集群,`sys` Schema 和其中的视图不会自动创建。你可以通过以下 SQL 语句手动创建:

```sql
CREATE DATABASE IF NOT EXISTS sys;
CREATE OR REPLACE VIEW sys.schema_unused_indexes AS
SELECT
table_schema as object_schema,
table_name as object_name,
index_name
FROM information_schema.cluster_tidb_index_usage
WHERE
table_schema not in ('sys', 'mysql', 'INFORMATION_SCHEMA', 'PERFORMANCE_SCHEMA') and
index_name != 'PRIMARY'
GROUP BY table_schema, table_name, index_name
HAVING
sum(last_access_time) is null;
```

## 更多阅读

- [`INFORMATION_SCHEMA.TIDB_INDEX_USAGE`](/information-schema/information-schema-tidb-index-usage.md)
14 changes: 14 additions & 0 deletions sys-schema/sys-schema.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
title: sys Schema
summary: 了解 TiDB `sys` 系统数据库。
---

# `sys` Schema

TiDB 从 v8.0.0 开始提供 `sys` Schema。你可以通过查看 `sys` 系统数据库中的表或视图理解 TiDB 的系统表、[`INFORMATION_SCHEMA`](/information-schema/information-schema.md) 表和 [`PERFORMANCE SCHEMA`](/performance-schema/performance-schema.md) 表内的数据。

## 与 MySQL 兼容的表

| 表名 | 描述 |
|---------------------------------------------------------------------|---------------------------|
| [`schema_unused_indexes`](/sys-schema/sys-schema-unused-indexes.md) | 记录自 TiDB 上次启动以来未被使用的索引信息。 |

0 comments on commit 32670d6

Please sign in to comment.