开发者社区 问答 正文

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

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

展开
收起
花开富贵111 2024-07-24 18:36:32 42 分享 版权
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 展开评论
问答分类:
问答标签:
问答地址: