Technical guidance for a large partition table

From: John Scalia <jayknowsunix(at)gmail(dot)com>
To: pgsql-admin <pgsql-admin(at)postgresql(dot)org>
Subject: Technical guidance for a large partition table
Date: 2021-05-09 23:18:38
Message-ID: EF56C0B6-A15B-4784-817F-60627BE46B96@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

Hi all,

I have a dev team requesting that I partition 3 very large tables with more 2 billion rows each. I’ve already got the partition key decided for each with a script which will create a copy of original with the partition declaration, along with the partition child tables. The problem will be that each table has an API which updates each table fairly regularly, and the devs say it cannot be turned off. So, I’m looking for the best way to do this so that the partitioned version will match the original table. FYI, this is production instance that is regularly updated by field technicians. Quite literally, I cannot perform two sequential select count(*) from any of these tables which will return the same row counts. I’m thinking of installing a trigger on insert on the original tables, which would write any insert to a third table, then copy the original table to another table name, do the partitioning on it to yet another table name, move the partition table into the original table name, kill the trigger, then apply the updates from the table where the insert trigger was being applied. Is there a better way to do this, or am I missing something?

Jay

Sent from my iPad

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Keith 2021-05-10 00:44:21 Re: Technical guidance for a large partition table
Previous Message Vipin Madhusoodanan 2021-05-09 03:46:00 Re: Query on User account password change details