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;

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

相关推荐
ZTLJQ18 小时前
数据的基石:Python中关系型数据库完全解析
开发语言·数据库·python
升鲜宝供应链及收银系统源代码服务19 小时前
《IntelliJ + Claude Code + Gemini + ChatGPT 实战配置手册升鲜宝》
java·前端·数据库·chatgpt·供应链系统·生鲜配送
跟着珅聪学java19 小时前
js编写中文转unicode 教程
前端·javascript·数据库
小江的记录本19 小时前
【Redis】Redis全方位知识体系(附《Redis常用命令速查表(完整版)》)
java·数据库·redis·后端·python·spring·缓存
还是做不到嘛\.20 小时前
Dvwa靶场-SQL Injection
数据库·sql·web安全
楼田莉子20 小时前
MySQL数据库:MySQL的数据类型
数据库·学习·mysql
2401_8796938720 小时前
数据分析与科学计算
jvm·数据库·python
LJianK121 小时前
java封装
java·前端·数据库
知识分享小能手1 天前
MongoDB入门学习教程,从入门到精通,MongoDB查询(4)
数据库·学习·mongodb
LSL666_1 天前
MybatisPlus条件构造器(上)
java·数据库·mysql·mybatisplus