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;

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

相关推荐
360智汇云5 分钟前
HULK PostgreSQL 图数据库化方案:Apache AGE 的引入与实践
数据库·postgresql·apache
SelectDB技术团队13 分钟前
驾驭 CPU 与编译器:Apache Doris 实现极致性能的底层逻辑
数据库·数据仓库·人工智能·sql·apache
万邦科技Lafite1 小时前
阿里巴巴商品详情API返回值:电商精准营销的关键
大数据·数据库·人工智能·电商开放平台
tc&1 小时前
为什么 Kamailio 模块封装的 MySQL 函数能有效防范 SQL 注入?
数据库·sql·mysql·网络攻击模型·kamailio
cookqq1 小时前
Java+MySQL时区难题-Date自动转换String差8小时
数据库·mysql
sugarzhangnotes1 小时前
MySQL 8.0升级中的字符集陷阱与解决方案
android·数据库·mysql
BD_Marathon1 小时前
MyBatis核心配置文件之mappers
java·数据库·mybatis
float_六七1 小时前
数据库管理系统(DBMS) 的核心组成部分
数据库·oracle
科技块儿1 小时前
内网系统IP离线数据库搭建与维护完整方案
数据库·网络协议·tcp/ip
小徐不徐说1 小时前
避坑指南:Qt 中 Lambda 表达式崩溃原因与高效使用实践
数据库·c++·qt·面试