Mysql如何监视特定表的索引使用情况

2023年 9月 9日 68.6k 0

performance_schema.table_io_waits_summary_by_index_usage 表聚合了由wait/io/table/sql/handler工具生成的所有表索引I/O等待事件。它可以用来监视表的索引使用情况。当服务器启动和处理的时间足够长以至于其工作负载具有代表性时,评估表索引的有效性应该是有用的。

列INDEX_NAME对应于记录表I/O等待事件时使用的索引的名称。PRIMARY值表示表I/O使用了主索引。

列COUNT_STAR聚合了相应INDEX_NAME的所有I/O操作。NULL意味着表I/O不使用索引。

查看wait/io/table/sql/handler 是否开启 表索引I/O等待事件统计功能

select * from performance_schema.setup_instruments where NAME="wait/io/table/sql/handler"

查看业务库没有使用的索引

SELECT
OBJECT_SCHEMA,OBJECT_NAME,INDEX_NAME,COUNT_STAR
FROM performance_schema.table_io_waits_summary_by_index_usage
WHERE INDEX_NAME IS NOT NULL
AND COUNT_STAR = 0
AND OBJECT_SCHEMA NOT IN ('SYS','MYSQL','INFORMATION_SCHEMA','PERFORMANCE_SCHEMA') AND OBJECT_SCHEMA = 'dbname'
ORDER BY OBJECT_SCHEMA,OBJECT_NAME;

查看某库某表的索引使用情况

SELECT OBJECT_SCHEMA, OBJECT_NAME, INDEX_NAME, COUNT_STAR
FROM performance_schema.table_io_waits_summary_by_index_usage
WHERE OBJECT_SCHEMA = 'dbname' AND OBJECT_NAME = 'tablename';

TRUNCATE  table_io_waits_summary_by_index_usage表,它将汇总列重置为零。更改表的索引结构的DDL操作可能会导致重置每个索引的统计信息。

-- 演示统计信息置0

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论