暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

万里数据库GreatADM 索引分析

原创 Dbb 2024-07-19
92

索引分析

索引分析包括冗余索引、无索引表及索引碎片化分析。

3.2.3.5.1 冗余索引

该页面可查看数据库中表是否存在重复索引,以及提供删除重复索引的SQL语句。

用下面的SQL语句可以查看到MySQL下的冗余索引信息:

select * from sys.schema_redundant_indexes\G

3.2.3.5.2 无索引表

该页面可提供数据库中不存在索引的表名称。

用下面的SQL语句可以查看到没有索引的表信息:

SELECT table_schema, table_name FROM information_schema.tables WHERE TABLE_NAME NOT IN ( SELECT TABLE_NAME FROM ( SELECT table_name, COUNT(*) FROM information_schema.statistics WHERE INDEX_NAME IS NOT NULL GROUP BY table_name HAVING COUNT(*) > 1) a) AND table_schema NOT IN ( 'mysql', 'information_schema', 'performance_schema', ,'sys');

3.2.3.5.3 索引碎片分析

该页面可查看数据库中索引碎片化信息。

可点击碎片整理,执行analyze table命令(alter table table_name engine=innodb;),并点击查看碎片整理历史,可查看历史记录信息。

用下面的SQL语句可以找出索引碎片化严重的表:

SELECT CONCAT(table_schema, '.', table_name) AS TABLE_NAME ,engine AS TABLE_ENGINE ,table_type AS TABLE_TYPE ,table_rows AS TABLE_ROWS ,CONCAT(ROUND(data_length / ( 1024 * 1024), 2), 'M') AS TB_DATA_SIZE ,CONCAT(ROUND(index_length / ( 1024 * 1024), 2), 'M') AS TB_IDX_SIZE ,CONCAT(ROUND((data_length + index_length ) / ( 1024 * 1024 ), 2), 'M') AS TOTAL_SIZE ,CASE WHEN data_length =0 THEN 0 ELSE ROUND(index_length / data_length, 2) END AS TB_INDX_RATE ,CONCAT(ROUND( data_free / 1024 / 1024,2), 'MB') AS TB_DATA_FREE ,CASE WHEN (data_length + index_length) = 0 THEN 0 ELSE ROUND(data_free/(data_length + index_length),2) END AS TB_FRAG_RATE FROM information_schema.TABLES where table_schema not IN ( 'mysql','performance_schema','information_schema','sys' ) ORDER BY data_free DESC;

3.2.3.6 热点表分析

该页面可查看数据库中热点表信息。

1、点击数据库运行分析中的热点表分析

2、点击创建热点表分析任务

3、等待热点表分析任务完成

4、热点表任务分析完成后,点击任务详情按钮可查看热点表的信息内容

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论