schema_unused_indexes
schema_unused_indexes
、TiDB の最後の起動以降に使用されていないインデックスを記録します。次の列が含まれます。
OBJECT_SCHEMA
: インデックスを含むテーブルが属するデータベースの名前。OBJECT_NAME
: インデックスを含むテーブルの名前。INDEX_NAME
: インデックスの名前。
USE SYS;
DESC SCHEMA_UNUSED_INDEXES;
出力は次のようになります。
+---------------+-------------+------+------+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------+-------------+------+------+---------+-------+
| object_schema | varchar(64) | YES | | NULL | |
| object_name | varchar(64) | YES | | NULL | |
| index_name | varchar(64) | YES | | NULL | |
+---------------+-------------+------+------+---------+-------+
3 rows in set (0.00 sec)
schema_unused_indexes
ビューを手動で作成する
v8.0.0 より前のバージョンからアップグレードされたクラスターの場合、 sys
スキーマとその中のビューは自動的に作成されません。次の 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;