开发者社区> 问答> 正文

如何识别出优化器从未使用过的索引?

如何识别出优化器从未使用过的索引?

展开
收起
花开富贵111 2024-07-24 18:36:32 14 0
1 条回答
写回答
取消 提交回答
  • 为了识别出优化器从未使用过的索引,可以使用以下SQL查询。这个查询会检查pg_stat_user_indexes视图中的idx_scan字段,如果某个索引的idx_scan值为0,且该索引不是唯一索引,那么可以认为这个索引从未被使用过,可能是冗余的。

    SELECT PSUI.indexrelid::regclass AS IndexName, PSUI.relid::regclass AS TableName 
    FROM pg_stat_user_indexes AS PSUI 
    JOIN pg_index AS PI ON PSUI.IndexRelid = PI.IndexRelid 
    WHERE PSUI.idx_scan = 0 
    AND PI.indisunique IS FALSE;
    

    下面以一个测试表,讲述排查例子
    image.png
    执行SQL可以查到idx_scan=0的索引idx_bimage.png

    2024-07-24 20:05:36
    赞同 4 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
阿里技术专家一挃:MongoDB 优化器 & 执行器介绍 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载