postgresql查询分区表的方法
小编给大家分享一下postgresql查询分区表的方法,相信大部分人都还不怎么了解,因此分享这边文章给大家学习,希望大家阅读完这篇文章后大所收获,下面让我们一起去学习方法吧!
大家知道 PostgreSQL 的分区是通过继承来实现的,按分区方式,可以实现表的列表分区,范围分区,以及复合分区等,本文仅介绍关于
分区表的几个查询,方便维护和管理分区表。
查询指定分区表信息
SELECTnmsp_parent.nspnameASparent_schema,parent.relnameASparent,nmsp_child.nspnameASchild,child.relnameASchild_schemaFROMpg_inheritsJOINpg_classparentONpg_inherits.inhparent=parent.oidJOINpg_classchildONpg_inherits.inhrelid=child.oidJOINpg_namespacenmsp_parentONnmsp_parent.oid=parent.relnamespaceJOINpg_namespacenmsp_childONnmsp_child.oid=child.relnamespaceWHEREparent.relname='table_name';
查询库中所有分区表子表个数
SELECTnspname,relname,COUNT(*)ASpartition_numFROMpg_classc,pg_namespacen,pg_inheritsiWHEREc.oid=i.inhparentANDc.relnamespace=n.oidANDc.relhassubclassANDc.relkind='r'GROUPBY1,2ORDERBYpartition_numDESC;
备注:如果表是分区表,那么相应的 pg_class.relhassubclass 字段为 ‘t’,否则为 ‘f’,下面是我在生产库查询的例子。
备注:第一张表分区表子表个数为 940,第二张表分区表子表个数为 842,这两张表为按日分区,后面的表为按月分区,按月分区的表个
数有差异,因为有些表快到期了,需要扩分区,有些分区表数据有清理策略,维护时删除了一些子表。
以上是postgresql查询分区表的方法的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。