PostgreSQL 查看重复索引

在进行数据表结构的设计和 SQL 优化的过程中,有时候会遇到这样的场景,索引被重复创建,那么如何找出这些被重复创建的索引呢,下面这个语句可以帮助到我们。

WITH sub AS ( SELECT indrelid::regclass AS relname,

indexrelid::regclass AS idx,

(indrelid::text || indclass::text || indkey::text || COALESCE(indexprs::text, '') || COALESCE(indpred::text, '')) AS KEY

FROM pg_index )

SELECT relname,

(array_agg(idx))[1] idx1,

pg_get_indexdef((array_agg(idx))[1]) idx1_def,

(array_agg(idx))[2] idx2,

pg_get_indexdef((array_agg(idx))[2]) idx2_def,

(array_agg(idx))[3] idx3,

pg_get_indexdef((array_agg(idx))[3]) idx3_def

FROM sub

GROUP BY relname, KEY

HAVING count(*) > 1;

备注:找出这些重复索引,然后根据需要进行删除。

相关推荐
惊起白鸽45024 分钟前
MySQL全量,增量备份与恢复
数据库·mysql
暮雨疏桐1 小时前
MySQL SQL Mode及其说明
数据库·sql·mysql·sql mode
Tangcan-2 小时前
【MySQL】数据库基础
数据库·mysql
蔡蓝2 小时前
Mysql的索引,慢查询和数据库表的设计以及乐观锁和悲观锁
数据库·mysql
jstart千语2 小时前
【Redis】分布式锁的实现
数据库·redis·分布式
一把年纪学编程3 小时前
【牛马技巧】word统计每一段的字数接近“字数统计”
前端·数据库·word
极小狐3 小时前
极狐GitLab 通用软件包存储库功能介绍
java·数据库·c#·gitlab·maven
钢铁男儿3 小时前
C# 方法(可选参数)
数据库·mysql·c#
陆少枫4 小时前
MySQL基础关键_013_常用 DBA 命令
数据库·mysql
赵渝强老师4 小时前
【赵渝强老师】在PostgreSQL中使用file_fdw访问外部文件系统
数据库·postgresql