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;

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

相关推荐
Leon-Ning Liu2 分钟前
【系列实验一】Oracle 19c RAC 安装(4个节点)
数据库·oracle
xuanloyer2 分钟前
oracle从入门到精通--oracle体系结构
数据库·oracle
生产队队长3 分钟前
Database:Linux环境中的Oracle修改密码
linux·数据库·oracle
Elseide艾思4 分钟前
【数据速递】数字经济招聘数据(2012年至今)
数据库
叽里咕噜怪5 分钟前
MySQL-主从复制实验详解
数据库·mysql
即将进化成人机5 分钟前
巷陌店铺方法功能整理
数据库·mysql
菜萝卜子5 分钟前
k8s 启动 postgresql 数据库
数据库·postgresql·kubernetes
jfqqqqq7 分钟前
postgres查看数据库大小
数据库·postgres
xcLeigh10 分钟前
实测 openEuler 生态适配与应用部署:多架构 + 云原生 + 数据库全场景落地指南
数据库·云原生·架构·openeuler
热爱跑步的恒川15 分钟前
OpenEuler上Docker Compose部署PostgreSQL数据库
数据库·docker·postgresql