小編給大家分享一下postgresql查詢分區(qū)表的方法,相信大部分人都還不怎么了解,因此分享這邊文章給大家學(xué)習(xí),希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去學(xué)習(xí)方法吧!
成都創(chuàng)新互聯(lián)專注于嶧城網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供嶧城營(yíng)銷型網(wǎng)站建設(shè),嶧城網(wǎng)站制作、嶧城網(wǎng)頁(yè)設(shè)計(jì)、嶧城網(wǎng)站官網(wǎng)定制、成都小程序開發(fā)服務(wù),打造嶧城網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供嶧城網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。
大家知道 PostgreSQL 的分區(qū)是通過(guò)繼承來(lái)實(shí)現(xiàn)的,按分區(qū)方式,可以實(shí)現(xiàn)表的列表分區(qū),范圍分區(qū),以及復(fù)合分區(qū)等,本文僅介紹關(guān)于
分區(qū)表的幾個(gè)查詢,方便維護(hù)和管理分區(qū)表。
查詢指定分區(qū)表信息
SELECT nmsp_parent.nspname AS parent_schema , parent.relname AS parent , nmsp_child.nspname AS child , child.relname AS child_schema FROM pg_inherits JOIN pg_class parent ON pg_inherits.inhparent = parent.oid JOIN pg_class child ON pg_inherits.inhrelid = child.oid JOIN pg_namespace nmsp_parent ON nmsp_parent.oid = parent.relnamespace JOIN pg_namespace nmsp_child ON nmsp_child.oid = child.relnamespace WHERE parent.relname = 'table_name';
查詢庫(kù)中所有分區(qū)表子表個(gè)數(shù)
SELECT nspname , relname , COUNT(*) AS partition_num FROM pg_class c , pg_namespace n , pg_inherits i WHERE c.oid = i.inhparent AND c.relnamespace = n.oid AND c.relhassubclass AND c.relkind = 'r' GROUP BY 1,2 ORDER BY partition_num DESC;
備注:如果表是分區(qū)表,那么相應(yīng)的 pg_class.relhassubclass 字段為 ‘t’,否則為 ‘f’,下面是我在生產(chǎn)庫(kù)查詢的例子。
備注:第一張表分區(qū)表子表個(gè)數(shù)為 940,第二張表分區(qū)表子表個(gè)數(shù)為 842,這兩張表為按日分區(qū),后面的表為按月分區(qū),按月分區(qū)的表個(gè)
數(shù)有差異,因?yàn)橛行┍砜斓狡诹?,需要擴(kuò)分區(qū),有些分區(qū)表數(shù)據(jù)有清理策略,維護(hù)時(shí)刪除了一些子表。
以上是postgresql查詢分區(qū)表的方法的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!