ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Mysql如何监视特定表的索引使用情况

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

原创 Linux操作系统 作者:张冲andy 时间:2023-09-10 18:12:14 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

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31383567/viewspace-2982185/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
支持就关注我个人公众号:DBA烂笔头 。专注数据库领域,熟悉oracle、mysql、redis、mongodb,clickhouse等相关技术

注册时间:2016-08-11

  • 博文量
    626
  • 访问量
    286296